Submitted URL: http://jav100.com/
Effective URL: http://www.jav100.com/
Submission: On November 06 via api from US

Summary

This website contacted 29 IPs in 5 countries across 21 domains to perform 105 HTTP transactions. The main IP is 2606:4700:30::6812:2a4f, located in United States and belongs to CLOUDFLARENET - Cloudflare, Inc., US. The main domain is www.jav100.com.
This is the only time www.jav100.com was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
1 22 2606:4700:30:... 13335 (CLOUDFLAR...)
23 2606:4700:30:... 13335 (CLOUDFLAR...)
1 2a00:1450:400... 15169 (GOOGLE)
4 23.111.9.35 33438 (HIGHWINDS2)
2 209.197.3.15 20446 (HIGHWINDS3)
1 2a00:1450:400... 15169 (GOOGLE)
1 94.31.29.128 33438 (HIGHWINDS2)
1 2 2606:4700:30:... 13335 (CLOUDFLAR...)
1 2606:2800:234... 15133 (EDGECAST)
1 54.84.122.125 14618 (AMAZON-AES)
4 2a00:1450:400... 15169 (GOOGLE)
1 205.185.208.85 20446 (HIGHWINDS3)
1 2a00:1450:400... 15169 (GOOGLE)
1 2606:4700::68... 13335 (CLOUDFLAR...)
1 2606:4700:30:... 13335 (CLOUDFLAR...)
2 10 88.208.59.100 39572 (ADVANCEDH...)
2 2a00:1450:400... 15169 (GOOGLE)
6 95.211.229.247 60781 (LEASEWEB-...)
3 94.199.253.33 48684 (VIKINGHOST)
1 195.181.170.18 60068 (CDN77)
1 216.21.13.16 53334 (TUT-AS)
1 69.89.69.121 558 (NNEXT)
1 2606:4700::68... 13335 (CLOUDFLAR...)
2 93.93.51.191 34655 (DOCLER-AS)
4 93.93.51.190 34655 (DOCLER-AS)
2 69.89.69.120 558 (NNEXT)
1 93.93.53.193 34655 (DOCLER-AS)
1 93.93.53.194 34655 (DOCLER-AS)
105 29
Domain Requested by
42 img.jav100.com www.jav100.com
10 ca.clcknads.pro 2 redirects www.jav100.com
6 syndication.exoclick.com ads.exoclick.com
4 galleryn0.awemwh.com www.jav100.com
4 www.google-analytics.com www.googletagmanager.com
www.jav100.com
4 use.fontawesome.com www.jav100.com
use.fontawesome.com
3 engine.phn.doublepimp.com ca.clcknads.pro
www.jav100.com
3 ads.trafficjunky.net static.trafficjunky.net
2 pt.ptawe.com ca.clcknads.pro
www.jav100.com
2 fonts.gstatic.com www.jav100.com
2 maxcdn.bootstrapcdn.com www.jav100.com
2 www.jav100.com www.jav100.com
1 click.livejasmin.com
1 click.jasmin.com
1 c.adsco.re serve.popads.net
1 serve.popads.net c1.popads.net
1 c1.popads.net www.jav100.com
1 statdynamic.com www.jav100.com
1 cdnjs.cloudflare.com www.jav100.com
1 ajax.googleapis.com www.jav100.com
1 static.trafficjunky.net www.jav100.com
1 dcba.popcash.net cdn.popcash.net
1 ads.exoclick.com www.jav100.com
1 popmyads.com www.jav100.com
1 cdn.popmyads.com 1 redirects
1 cdn.popcash.net www.jav100.com
1 www.googletagmanager.com www.jav100.com
1 fonts.googleapis.com www.jav100.com
1 jav100.com 1 redirects
105 29

This site contains links to these domains. Also see Links.

Domain
www.facebook.com
twitter.com
plus.google.com
Subject Issuer Validity Valid
*.googleapis.com
Google Internet Authority G3
2018-10-23 -
2019-01-15
3 months crt.sh
*.fontawesome.com
DigiCert SHA2 Secure Server CA
2018-09-17 -
2019-11-21
a year crt.sh
*.bootstrapcdn.com
COMODO RSA Domain Validation Secure Server CA
2018-10-03 -
2019-10-12
a year crt.sh
*.google-analytics.com
Google Internet Authority G3
2018-10-23 -
2019-01-15
3 months crt.sh
sni101728.cloudflaressl.com
COMODO ECC Domain Validation Secure Server CA 2
2018-10-17 -
2019-04-25
6 months crt.sh
*.exoclick.com
DigiCert SHA2 Secure Server CA
2017-12-12 -
2020-12-16
3 years crt.sh
*.popcash.net
COMODO RSA Domain Validation Secure Server CA
2017-04-05 -
2020-04-26
3 years crt.sh
ssl412106.cloudflaressl.com
COMODO ECC Domain Validation Secure Server CA 2
2018-09-22 -
2019-03-31
6 months crt.sh
*.google.com
Google Internet Authority G3
2018-10-23 -
2019-01-15
3 months crt.sh
engine.doublepimp.com
Go Daddy Secure Certificate Authority - G2
2018-07-22 -
2019-09-20
a year crt.sh
pt.ptawe.com
Let's Encrypt Authority X3
2018-09-17 -
2018-12-16
3 months crt.sh
*.awemwh.com
AlphaSSL CA - SHA256 - G2
2018-04-10 -
2019-04-11
a year crt.sh

This page contains 10 frames:

Primary Page: http://www.jav100.com/
Frame ID: 070077DA3F4EA5F73ABAC5782C10143B
Requests: 100 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234393&type=728x90&p=http%3A//www.jav100.com/&dt=1541541876259&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 0F91FBDA954DCAC4872DF2A0AD861EBE
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234403&type=300x100&p=http%3A//www.jav100.com/&dt=1541541876261&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 0E2DE498F4892F4F23C4D96433D61AA5
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234415&type=300x50&p=http%3A//www.jav100.com/&dt=1541541876264&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: FF5B07003F01B33F07750ADD29443F42
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234375&type=300x250&p=http%3A//www.jav100.com/&dt=1541541876319&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: EBB5EE4B68B73F83D807581D52B40EF6
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234377&type=300x250&p=http%3A//www.jav100.com/&dt=1541541876320&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 1B0CE58B3AAB5EB70158F069D6F2E4C8
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234379&type=300x250&p=http%3A//www.jav100.com/&dt=1541541876321&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 60ADB32F111ED7291ECEEC78B55EE60E
Requests: 1 HTTP requests in this frame

Frame: http://ads.trafficjunky.net/ads?zone_id=1379941&ref=www.jav100.com&pid=69e50e4f-ffbb-4096-b260-06ec611975be&ts=1541541876
Frame ID: ADCEE8EB4487E3D2B9F3D51E5B964177
Requests: 1 HTTP requests in this frame

Frame: http://ads.trafficjunky.net/ads?zone_id=1379951&ref=www.jav100.com&pid=69e50e4f-ffbb-4096-b260-06ec611975be&ts=1541541876
Frame ID: 1685BA1570AD98A886A773AA12EF33B3
Requests: 1 HTTP requests in this frame

Frame: http://ads.trafficjunky.net/ads?zone_id=1379961&ref=www.jav100.com&pid=69e50e4f-ffbb-4096-b260-06ec611975be&ts=1541541876
Frame ID: 2DA1B4E4D47E9E27701213A72045F9E1
Requests: 1 HTTP requests in this frame

Screenshot


Page URL History Show full URLs

  1. http://jav100.com/ HTTP 302
    http://www.jav100.com/ Page URL

Detected technologies

Overall confidence: 100%
Detected patterns
  • headers server /cloudflare/i

Overall confidence: 100%
Detected patterns
  • html /<script[^>]* src=[^>]+fontawesome(?:\.js)?/i

Overall confidence: 100%
Detected patterns
  • script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
  • env /^gaGlobal$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com/i

Overall confidence: 100%
Detected patterns
  • env /^google_tag_manager$/i

Overall confidence: 100%
Detected patterns
  • env /^jQuery$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]+?href="[^"]+bootstrap(?:\.min)?\.css/i

Page Statistics

105
Requests

24 %
HTTPS

43 %
IPv6

21
Domains

29
Subdomains

29
IPs

5
Countries

2331 kB
Transfer

6356 kB
Size

0
Cookies

Page URL History

This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.

  1. http://jav100.com/ HTTP 302
    http://www.jav100.com/ Page URL

Redirected requests

There were HTTP redirect chains for the following requests:

Request Chain 6
  • https://cdn.popmyads.com/pma.js HTTP 301
  • https://popmyads.com/x/pma
Request Chain 87
  • http://ca.clcknads.pro/v1/a/23405/imp?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.jav100.com%2F HTTP 307
  • http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid
Request Chain 88
  • http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid HTTP 307
  • http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db

105 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
www.jav100.com/
Redirect Chain
  • http://jav100.com/
  • http://www.jav100.com/
76 KB
16 KB
Document
General
Full URL
http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
fec3fab0f5df6ed70f28d3d2f9797cca551ff19bc55dd4d538b0f7cc50506258
Security Headers
Name Value
X-Frame-Options SAMEORIGIN

Request headers

Host
www.jav100.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding
gzip, deflate
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
X-Frame-Options
SAMEORIGIN
Server
cloudflare
CF-RAY
475adb4b156bc2b5-FRA
Content-Encoding
gzip

Redirect headers

Date
Tue, 06 Nov 2018 22:04:34 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Set-Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; expires=Wed, 06-Nov-19 22:04:34 GMT; path=/; domain=.jav100.com; HttpOnly
Location
http://www.jav100.com/
X-Served-By
Namecheap URL Forward
Server
cloudflare
CF-RAY
475adb48c71a9792-FRA
css
fonts.googleapis.com/
2 KB
651 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Dosis|Oswald:700
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:81b::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
ESF /
Resource Hash
308284a8ada574d11d1bc70dbeec0a29ea1a270edcd56f74712903608e0e88ee
Security Headers
Name Value
Strict-Transport-Security max-age=604800
X-Frame-Options SAMEORIGIN
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=604800
content-encoding
gzip
last-modified
Tue, 06 Nov 2018 22:04:36 GMT
server
ESF
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
status
200
date
Tue, 06 Nov 2018 22:04:36 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
x-xss-protection
1; mode=block
expires
Tue, 06 Nov 2018 22:04:36 GMT
d9b96ae937.js
use.fontawesome.com/
9 KB
4 KB
Script
General
Full URL
https://use.fontawesome.com/d9b96ae937.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
231dd0304bca17f11b4c9c184b8b899e56d505869ded7ac5e6b180e62bd5a656

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Wed, 21 Sep 2016 18:06:29 GMT
server
NetDNA-cache/2.2
x-amz-request-id
0F64C951BA47FE3E
etag
W/"75ccf41c647b002104669a1a3fecb54f"
x-cache
HIT
content-type
text/javascript
status
200
cache-control
max-age=0, private, must-revalidate
x-amz-id-2
wRkOKAcwVEb3nw9s9ZAzR1CbgbX/pGRq6UBW/7m3YfMGJ1myIYyBonFJvRvdoVB++CH6SCpw8Mg=
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/
95 KB
16 KB
Stylesheet
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/bootstrap.min.css
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
1f1ab1e885f13eeeefbe3ae4f9fbda1859241500623073f48224969370edf1fd

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Tue, 20 Feb 2018 05:57:55 GMT
status
200
etag
"1519106275"
vary
Accept-Encoding
x-cache
HIT
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
content-length
16660
main.css
www.jav100.com/static/jav100/css/
17 KB
4 KB
Stylesheet
General
Full URL
http://www.jav100.com/static/jav100/css/main.css
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
bf68f00a577afe536af23e43b534f70423e05e87b8c86ceb40598bd2e8e8d2ae

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/css,*/*;q=0.1
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Thu, 22 Sep 2016 17:43:25 GMT
Server
cloudflare
ETag
W/"57e4183d-44d8"
Vary
Accept-Encoding
Content-Type
text/css
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
475adb55620c9798-FRA
Expires
Wed, 07 Nov 2018 02:04:36 GMT
js
www.googletagmanager.com/gtag/
86 KB
31 KB
Script
General
Full URL
https://www.googletagmanager.com/gtag/js?id=UA-116369384-1
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:81b::2008 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Google Tag Manager (scaffolding) /
Resource Hash
f862ae15a3fd0c9302808056f8be71cfd059e29de03a3c38056b543f6496f17d
Security Headers
Name Value
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
server
Google Tag Manager (scaffolding)
access-control-allow-headers
Cache-Control
status
200
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
access-control-allow-origin
http://www.googletagmanager.com
cache-control
private, max-age=900
access-control-allow-credentials
true
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
31816
x-xss-protection
1; mode=block
expires
Tue, 06 Nov 2018 22:04:36 GMT
pop.js
cdn.popcash.net/
64 KB
29 KB
Script
General
Full URL
http://cdn.popcash.net/pop.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
94.31.29.128 , United Kingdom, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
94.31.29.128.IPYX-077437-ZYO.above.net
Software
NetDNA-cache/2.2 /
Resource Hash
f3cf86046748fe91cf89243476126804cb5b502d7d00589865e3915771c41298

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Thu, 18 Oct 2018 12:33:42 GMT
Server
NetDNA-cache/2.2
ETag
W/"5bc87da6-10156"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
application/javascript
Cache-Control
max-age=86400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
46da627a864bc2d3-FRA
Expires
Wed, 07 Nov 2018 22:04:36 GMT
pma
popmyads.com/x/
Redirect Chain
  • https://cdn.popmyads.com/pma.js
  • https://popmyads.com/x/pma
66 KB
27 KB
Script
General
Full URL
https://popmyads.com/x/pma
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700:30::ac40:8504 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare / PHP/7.1.16
Resource Hash
e53958ea7556d07c3cd32670c97089812713eabfee1128191c9730b500b53864

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
server
cloudflare
x-powered-by
PHP/7.1.16
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
content-type
text/html; charset=UTF-8
status
200
cf-ray
475adb55ee13bf20-FRA

Redirect headers

date
Tue, 06 Nov 2018 22:04:36 GMT
cf-cache-status
HIT
server
cloudflare
status
301
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary
Accept-Encoding
content-type
text/html; charset=iso-8859-1
location
https://popmyads.com/x/pma
cache-control
public, max-age=14400
cf-ray
475adb55add5bf20-FRA
expires
Wed, 07 Nov 2018 02:04:36 GMT
QmWRTEHW6GZNSDxqj8zrNd7BDpLMne8xFqD4HAhGbjHe2s
img.jav100.com/ipfs/
42 KB
43 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmWRTEHW6GZNSDxqj8zrNd7BDpLMne8xFqD4HAhGbjHe2s
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
fef5572c908a49ce88bbc45d6e4267a9b340ce64369d9108129fc0aa96034a90

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqhqgdlliizw47ynwvgw7hlkjdfbxymn2ct2vp4xlqwfun3zk6ahqa
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmWRTEHW6GZNSDxqj8zrNd7BDpLMne8xFqD4HAhGbjHe2s"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmWRTEHW6GZNSDxqj8zrNd7BDpLMne8xFqD4HAhGbjHe2s
CF-RAY
475adb559056c288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSwAZ91FrZRyfHLHW6HDv6W3HTQRpjJmWKzrPnFPXnE2K
img.jav100.com/ipfs/
37 KB
38 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmSwAZ91FrZRyfHLHW6HDv6W3HTQRpjJmWKzrPnFPXnE2K
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d8d504201a2904d50eabdbd7756b3f5d156fc495e1c33bdceac3630c15d867c9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqeirr52ktd5znxx527dh4o6ogcsefz45z36tkjc4ihwz4ghw62xsa
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmSwAZ91FrZRyfHLHW6HDv6W3HTQRpjJmWKzrPnFPXnE2K"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmSwAZ91FrZRyfHLHW6HDv6W3HTQRpjJmWKzrPnFPXnE2K
CF-RAY
475adb56032897b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZznd53jPCyWhhYpX6FeGzRpJHZiJQozdL4axmojiF64o
img.jav100.com/ipfs/
37 KB
38 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmZznd53jPCyWhhYpX6FeGzRpJHZiJQozdL4axmojiF64o
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
2ef817b35f3185aa10b5498a7887cbc4a2460f971b57569eca12db91d15f1cb9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqk2nmtbl6jajswnhrdspvogqis3l5apeapf4yto3pwe7llgdzloea
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmZznd53jPCyWhhYpX6FeGzRpJHZiJQozdL4axmojiF64o"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZznd53jPCyWhhYpX6FeGzRpJHZiJQozdL4axmojiF64o
CF-RAY
475adb56834e97b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXnEDDG3QzqngyWRaWN4C4etn9dNfTuVb4qYthxDckSiJ
img.jav100.com/ipfs/
58 KB
59 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmXnEDDG3QzqngyWRaWN4C4etn9dNfTuVb4qYthxDckSiJ
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
bf87e7665143225348654d6d1257d53d12519b61eb21000b16d250cae9a7cefa

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqiyruvjqmhcrua5ecsf4woy2ezuype4hhe6fr7bti5spliwhqraby
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmXnEDDG3QzqngyWRaWN4C4etn9dNfTuVb4qYthxDckSiJ"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmXnEDDG3QzqngyWRaWN4C4etn9dNfTuVb4qYthxDckSiJ
CF-RAY
475adb56952bc300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmdmA7rVKBhCMBKrbrstpUp5dY2U8VooDfyCASr3gBpzJS
img.jav100.com/ipfs/
34 KB
34 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmdmA7rVKBhCMBKrbrstpUp5dY2U8VooDfyCASr3gBpzJS
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
b90ef04e3e2e1f1dd7ba9788fcc9062e4e5f1a9ffa1ce681c94b43322085e4f9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqokjt7exka3mtxxcngeo3dhu3eadcjihvukfwncg22okmmvpfouty
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmdmA7rVKBhCMBKrbrstpUp5dY2U8VooDfyCASr3gBpzJS"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmdmA7rVKBhCMBKrbrstpUp5dY2U8VooDfyCASr3gBpzJS
CF-RAY
475adb5694d69792-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZMVSFZvZQBtLnEmU1tBNadMBGxvrsBU1vqYA6uRyLVBc
img.jav100.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmZMVSFZvZQBtLnEmU1tBNadMBGxvrsBU1vqYA6uRyLVBc
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ebd76f7826c067b170d3343e159525bbe025417c365b41beaf89aca968c21d8c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqkhj5gzyhqrrgimyepxolnjcg6q4dnh2ni7eiewn7coclo2rfnmty
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmZMVSFZvZQBtLnEmU1tBNadMBGxvrsBU1vqYA6uRyLVBc"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZMVSFZvZQBtLnEmU1tBNadMBGxvrsBU1vqYA6uRyLVBc
CF-RAY
475adb56b553c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcZAk6SiWCtMTq5LRBoJXBEth6QtXZ7U3HgtTuLJ4biFp
img.jav100.com/ipfs/
26 KB
27 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmcZAk6SiWCtMTq5LRBoJXBEth6QtXZ7U3HgtTuLJ4biFp
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
3a1edb0c94f6aba7bc43a7173209fc04c1b902eaf56b0f2389c0aab40f391b0e

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqngoel5izq4m6nqmfavxuqae2x4kzq6vuwv4e5aarg4vi3bnyav7y
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmcZAk6SiWCtMTq5LRBoJXBEth6QtXZ7U3HgtTuLJ4biFp"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmcZAk6SiWCtMTq5LRBoJXBEth6QtXZ7U3HgtTuLJ4biFp
CF-RAY
475adb56c290c2f6-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmTLg4USQQn7P2ndgw17qRQwZCWyCbJ7g7PArC7E1hDEd5
img.jav100.com/ipfs/
53 KB
54 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmTLg4USQQn7P2ndgw17qRQwZCWyCbJ7g7PArC7E1hDEd5
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4c4111786251f051a938a6f69a6a5cf3e7389a144550b2911c7d6de6537a3ea6

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqeus7wl5n6afnnkmdiuk7ogmqusvcmnxdaibeejzlt5v7foph2bia
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmTLg4USQQn7P2ndgw17qRQwZCWyCbJ7g7PArC7E1hDEd5"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmTLg4USQQn7P2ndgw17qRQwZCWyCbJ7g7PArC7E1hDEd5
CF-RAY
475adb56c53197c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmNx6PSV69KY3pGpdtgKnofwvisd59ZxfPTsYvegBk5qdS
img.jav100.com/ipfs/
47 KB
48 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmNx6PSV69KY3pGpdtgKnofwvisd59ZxfPTsYvegBk5qdS
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f0522d64002ba12c577c1f41da46c2afa219321466f1132145cae24b2df2ce5d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqasfc43krzsv57sggiowmuqu3uutaibsjhteiy3ecbt4kgt7trzui
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmNx6PSV69KY3pGpdtgKnofwvisd59ZxfPTsYvegBk5qdS"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmNx6PSV69KY3pGpdtgKnofwvisd59ZxfPTsYvegBk5qdS
CF-RAY
475adb56d560c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmPrXFQT49t2K3pVu2xs2Ywr7MWKdpY9jSHGe1fU3amRVj
img.jav100.com/ipfs/
36 KB
37 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmPrXFQT49t2K3pVu2xs2Ywr7MWKdpY9jSHGe1fU3amRVj
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6e76f39fc0cad51e775074a569d15407f51485f095790199f795c3f3167c1f43

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqbnavm7ssoj5n34wzrgs3srw2cx6hvthingksxrdphtm7rwrtgbuq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmPrXFQT49t2K3pVu2xs2Ywr7MWKdpY9jSHGe1fU3amRVj"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmPrXFQT49t2K3pVu2xs2Ywr7MWKdpY9jSHGe1fU3amRVj
CF-RAY
475adb5883acc2f6-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmV2swk1ZwqDxPk3YVS18aKM5jNQEKWK2rX6KKiGUaR6h5
img.jav100.com/ipfs/
46 KB
47 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmV2swk1ZwqDxPk3YVS18aKM5jNQEKWK2rX6KKiGUaR6h5
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
71132392a53fa05c480068c5f49ac1728cd563d6d5d03b08e261d16160d29484

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqgg5crummo3r4rztsummhbgbxv5xunwlwfnsslhrfy772pzdq3xoa
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmV2swk1ZwqDxPk3YVS18aKM5jNQEKWK2rX6KKiGUaR6h5"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmV2swk1ZwqDxPk3YVS18aKM5jNQEKWK2rX6KKiGUaR6h5
CF-RAY
475adb57c3bb97b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmYc6Pe4deJ5ZPCKC9z2YxFjhXs8sM49cTbnn1NQK11ryw
img.jav100.com/ipfs/
47 KB
48 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmYc6Pe4deJ5ZPCKC9z2YxFjhXs8sM49cTbnn1NQK11ryw
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
616779af2b64b1f7a7583a86816617d5101a795aec493b4796502552d4ab64b6

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqjrcm6uovspbresv2xzwqldvwkqciiwp657tkwtc7syhgpxlffqsq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmYc6Pe4deJ5ZPCKC9z2YxFjhXs8sM49cTbnn1NQK11ryw"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmYc6Pe4deJ5ZPCKC9z2YxFjhXs8sM49cTbnn1NQK11ryw
CF-RAY
475adb5893f997b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcdHDPho2SYtsfgaAjG8nHUzwwWe27jEQ3gYJe9aXDbtv
img.jav100.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmcdHDPho2SYtsfgaAjG8nHUzwwWe27jEQ3gYJe9aXDbtv
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
495f7d79203830a7c59ab044bcfa983e2900991687dcd02c6ae2c27c52cb3101

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnirrpvbwjucmmsrolaovx6mvtsqjlp3vjlyqa2fhjqzlw4p6v62y
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmcdHDPho2SYtsfgaAjG8nHUzwwWe27jEQ3gYJe9aXDbtv"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmcdHDPho2SYtsfgaAjG8nHUzwwWe27jEQ3gYJe9aXDbtv
CF-RAY
475adb58a2dfc288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcNpGmLGL2JdriRkbEojMo5VDzVCv9DCK6XJfbiEvNiMs
img.jav100.com/ipfs/
45 KB
46 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmcNpGmLGL2JdriRkbEojMo5VDzVCv9DCK6XJfbiEvNiMs
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5acba639e57eb27c9e50427c1ff9b847ca1b0e9883d410414ac4dc14f2c1486f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:39 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnbemxokyzyvyed2msweyutg7ewg27jhgdm2xsrogufpanncapo5q
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmcNpGmLGL2JdriRkbEojMo5VDzVCv9DCK6XJfbiEvNiMs"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmcNpGmLGL2JdriRkbEojMo5VDzVCv9DCK6XJfbiEvNiMs
CF-RAY
475adb58a40097b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmP45aDRTVVQYLpG7fjCsG4iagENTbFbnhbe48rNGmuKK7
img.jav100.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmP45aDRTVVQYLpG7fjCsG4iagENTbFbnhbe48rNGmuKK7
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d845f0721a3e6e23651528e2a11e299ba11e7a4e24f1f1973a15122591faece4

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqavhhnjjikrhau5brkltlri53t6grymgpthm47vrixl6kkthhgfiq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmP45aDRTVVQYLpG7fjCsG4iagENTbFbnhbe48rNGmuKK7"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmP45aDRTVVQYLpG7fjCsG4iagENTbFbnhbe48rNGmuKK7
CF-RAY
475adb571193c288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmWNNa5EYasKoqNMzxUjnmdJWEFJEfFB35peEyiSrKYRcB
img.jav100.com/ipfs/
44 KB
45 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmWNNa5EYasKoqNMzxUjnmdJWEFJEfFB35peEyiSrKYRcB
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
349f6e9d417bab56e5974c2d2201bf5fe0c1ad92f3b07c7b8d1b3a6d11ffad78

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqhottix6aqbnmvx6txg4ga5bqeyyntf4dxyrsfnqtul23y27qx3ma
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmWNNa5EYasKoqNMzxUjnmdJWEFJEfFB35peEyiSrKYRcB"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmWNNa5EYasKoqNMzxUjnmdJWEFJEfFB35peEyiSrKYRcB
CF-RAY
475adb58b5899792-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXg5iFDFfK8S9ZJCY7QSKkpL17T78ZYy2t4gPFUcKrqfR
img.jav100.com/ipfs/
38 KB
39 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmXg5iFDFfK8S9ZJCY7QSKkpL17T78ZYy2t4gPFUcKrqfR
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
12a22c88e8013dfd02bd428c3375196ead934fa7dd28cb330b5e8aad0dd4d2ff

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqivm345zyy3dy7twluq74q6wu2uq6fqrdwgiplwlk7ao6ffkdvzxa
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmXg5iFDFfK8S9ZJCY7QSKkpL17T78ZYy2t4gPFUcKrqfR"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmXg5iFDFfK8S9ZJCY7QSKkpL17T78ZYy2t4gPFUcKrqfR
CF-RAY
475adb58c6d6c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmegQJZkqmVANPHAgDiBwr1hTcmg4SmnPEPwbHyMmtS97h
img.jav100.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmegQJZkqmVANPHAgDiBwr1hTcmg4SmnPEPwbHyMmtS97h
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4d516ad25528cefed9a1aabbfa3297f2ad93c31e9aa06dc07bbc2f965de714ff

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqpfssro4a6j4xagtwo55q7qfbpcmfec2kfoiwmch5537zkt2ko6pa
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmegQJZkqmVANPHAgDiBwr1hTcmg4SmnPEPwbHyMmtS97h"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmegQJZkqmVANPHAgDiBwr1hTcmg4SmnPEPwbHyMmtS97h
CF-RAY
475adb58d5969792-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSbLgrkc9W8fRnPtx7ed5ETRpk7zHjyUjzgrjwMy1TPSw
img.jav100.com/ipfs/
55 KB
56 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmSbLgrkc9W8fRnPtx7ed5ETRpk7zHjyUjzgrjwMy1TPSw
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
c0fde4c54bc7c9353077d30e49f12a9a6f00ac2f2e6349bf1ebaa9503d04b87b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:39 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqd6mqvgvvwzrc5qyvqtaa6owfgibzmbcv5qlumosfzva7xxo7gmca
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmSbLgrkc9W8fRnPtx7ed5ETRpk7zHjyUjzgrjwMy1TPSw"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmSbLgrkc9W8fRnPtx7ed5ETRpk7zHjyUjzgrjwMy1TPSw
CF-RAY
475adb58e6f0c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVELXzmmAhYmuiZGBhSgPqutTnA4R9dQzfWm2QjCit2mL
img.jav100.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmVELXzmmAhYmuiZGBhSgPqutTnA4R9dQzfWm2QjCit2mL
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
edcf05c7590c2b9e52cd67e20b05fc5d551a9adb6b6daa4aa6bfdfd7ea8201a5

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqgmy6gdtcqi5fzezf4wpfmt3jcmixij3bingb533tesax27oejpfy
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmVELXzmmAhYmuiZGBhSgPqutTnA4R9dQzfWm2QjCit2mL"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmVELXzmmAhYmuiZGBhSgPqutTnA4R9dQzfWm2QjCit2mL
CF-RAY
475adb5872a6c288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQcpvWuZ8UxeLZnrCVR9X2xquErwnj76xhRSWWMUru3gJ
img.jav100.com/ipfs/
49 KB
50 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmQcpvWuZ8UxeLZnrCVR9X2xquErwnj76xhRSWWMUru3gJ
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e471fd145da309e6e884c956eb82679809665c8f1021946dd6d26ad6b0d262b9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqcdxbxhqtroixud76hf5pgq6w77iukkxrxh3ky7o52eylsvh7n7py
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmQcpvWuZ8UxeLZnrCVR9X2xquErwnj76xhRSWWMUru3gJ"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQcpvWuZ8UxeLZnrCVR9X2xquErwnj76xhRSWWMUru3gJ
CF-RAY
475adb591335c288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmPVKPpXB5MuQWenEA4xQhvy1V4ahRZL8c5tkQedUSbgi3
img.jav100.com/ipfs/
42 KB
43 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmPVKPpXB5MuQWenEA4xQhvy1V4ahRZL8c5tkQedUSbgi3
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
3d291d1d85055ca72cf7a0dcc66f29e39f5ac7cf582d7254fb02252c4cd7a7b7

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqbcfatbbl4io6djlxitiknydgq56asagb7jthztrv5wd3fi4ywqca
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmPVKPpXB5MuQWenEA4xQhvy1V4ahRZL8c5tkQedUSbgi3"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmPVKPpXB5MuQWenEA4xQhvy1V4ahRZL8c5tkQedUSbgi3
CF-RAY
475adb596379c288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQ5Q1mxQeFj5EoAEFid2HLbkCaTCtqXvRLDVaQWMrcGne
img.jav100.com/ipfs/
39 KB
40 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmQ5Q1mxQeFj5EoAEFid2HLbkCaTCtqXvRLDVaQWMrcGne
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
903f28573a02c3055b9f2270b3a157ecf9fd895fb03724356b8d3b06e45c89aa

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqbttylvxy4e33n4pisaykykd2jismkkewfswejvbcgjkf27n55woy
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmQ5Q1mxQeFj5EoAEFid2HLbkCaTCtqXvRLDVaQWMrcGne"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQ5Q1mxQeFj5EoAEFid2HLbkCaTCtqXvRLDVaQWMrcGne
CF-RAY
475adb59761c97c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXXrqBUPbteYgZjJfgKsButsCVkZsFkMr28WCjTdR7cjD
img.jav100.com/ipfs/
48 KB
49 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmXXrqBUPbteYgZjJfgKsButsCVkZsFkMr28WCjTdR7cjD
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d47e743bdd4d151705fdeb456c2c7716b8377133f4aba7c5d2c50a9d2e222a9b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqirgchcdrc2sp54tlukukg5glqaolggngljgc2o42ar4nlri3qf3a
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmXXrqBUPbteYgZjJfgKsButsCVkZsFkMr28WCjTdR7cjD"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmXXrqBUPbteYgZjJfgKsButsCVkZsFkMr28WCjTdR7cjD
CF-RAY
475adb598479c2f6-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmceeKajbwxftvhm7tCxN1wwJxbfSoWUyM4HYbARSxUHWB
img.jav100.com/ipfs/
42 KB
43 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmceeKajbwxftvhm7tCxN1wwJxbfSoWUyM4HYbARSxUHWB
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e5b535dcfb69c478d01f0e7e15095c528d81485bae982e1edae7fcabea4ff0ba

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnjh5b42spdvrkszibha6axcfmalqudre7iqzrmiwh3bbydg4zvja
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmceeKajbwxftvhm7tCxN1wwJxbfSoWUyM4HYbARSxUHWB"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmceeKajbwxftvhm7tCxN1wwJxbfSoWUyM4HYbARSxUHWB
CF-RAY
475adb59d64597c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcmkapriLnL7uRKWyLBZ6wUDKmUY3gsxuSN8vszX3p3C1
img.jav100.com/ipfs/
41 KB
42 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmcmkapriLnL7uRKWyLBZ6wUDKmUY3gsxuSN8vszX3p3C1
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
8dbd6f674a03a8b98a6ddb6ca940da921effef9af4b6e7337980bbef8bd2cbbd

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnm4ohrqijzvy4tbl73ptm6d3msssjwkkwpuhn2cnv4g44azdckpq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmcmkapriLnL7uRKWyLBZ6wUDKmUY3gsxuSN8vszX3p3C1"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmcmkapriLnL7uRKWyLBZ6wUDKmUY3gsxuSN8vszX3p3C1
CF-RAY
475adb59f65397c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmer5MbimAmXJb5iVt3u7BQfgcMwxn6Cj4fXseAVVbn6iC
img.jav100.com/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.jav100.com/ipfs/Qmer5MbimAmXJb5iVt3u7BQfgcMwxn6Cj4fXseAVVbn6iC
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
06cd6e883331090c8a3e207d91b05ea33591a5c21d12ff65cf56a00a8feb425a

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874; _ga=GA1.2.900310189.1541541876; _gid=GA1.2.1758159314.1541541876; _gat_gtag_UA_116369384_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqpkrftxqpw7wp572xdt5smj4ph2w6ccc2dvbjusaobka44iootymi
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"Qmer5MbimAmXJb5iVt3u7BQfgcMwxn6Cj4fXseAVVbn6iC"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmer5MbimAmXJb5iVt3u7BQfgcMwxn6Cj4fXseAVVbn6iC
CF-RAY
475adb5a5522c2f6-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
ads.js
ads.exoclick.com/
1 KB
656 B
Script
General
Full URL
https://ads.exoclick.com/ads.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2606:2800:234:1f1f:1754:1fef:718:1223 , United States, ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US),
Reverse DNS
Software
ECS (fcn/40E2) /
Resource Hash
be06cee347498997d696c3d72c972214543f4108d6283ae93727058c856bb221

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Tue, 06 Nov 2018 21:18:46 GMT
server
ECS (fcn/40E2)
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript;charset=UTF-8
status
200
cache-control
max-age=10800
accept-ranges
bytes
content-length
473
expires
Wed, 07 Nov 2018 01:04:36 GMT
QmSr8qsMu4iuLxeBHbwsEEwVZ96Lej7exuKRGNxSeyX114
img.jav100.com/ipfs/
55 KB
56 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmSr8qsMu4iuLxeBHbwsEEwVZ96Lej7exuKRGNxSeyX114
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
1a3f700293cbd3e9ee3bf757a2bc2dab0dc27d5e26a6baeccf72c50e6162167a

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqef7dg6zxmvrk65pxyt5d6j374udop5lux5ks5s2w3fuxfhtm3key
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmSr8qsMu4iuLxeBHbwsEEwVZ96Lej7exuKRGNxSeyX114"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmSr8qsMu4iuLxeBHbwsEEwVZ96Lej7exuKRGNxSeyX114
CF-RAY
475adb57e3c497b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQyVxTdrGzMrj7MacfGbtQYHUS2XrHKxAZozpSdWgFuJY
img.jav100.com/ipfs/
45 KB
46 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmQyVxTdrGzMrj7MacfGbtQYHUS2XrHKxAZozpSdWgFuJY
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
69dc03b7a19e3f9e5d662b5d15f799b1b8d9f6c56d7b6d1dfd425a0429815f71

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqcoj7xt5dj7sp5d2wwjwneazt4mqcbfinmeennlal7ti7zb73xnci
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmQyVxTdrGzMrj7MacfGbtQYHUS2XrHKxAZozpSdWgFuJY"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQyVxTdrGzMrj7MacfGbtQYHUS2XrHKxAZozpSdWgFuJY
CF-RAY
475adb586397c2f6-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRFxLf56UQfnt2eE1TDQ7EztvhpWGV65GcnXHSY5SxrJw
img.jav100.com/ipfs/
55 KB
56 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmRFxLf56UQfnt2eE1TDQ7EztvhpWGV65GcnXHSY5SxrJw
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
32594bbfeab54c44aaf7730afa0ae4439c6a69734e434ed843bd1a7f826fa7e5

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqcwxyxlpd44gqpa3l53h4r5dvgout4x22y4ikhw52efupxos6khxa
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmRFxLf56UQfnt2eE1TDQ7EztvhpWGV65GcnXHSY5SxrJw"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRFxLf56UQfnt2eE1TDQ7EztvhpWGV65GcnXHSY5SxrJw
CF-RAY
475adb586689c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmczv45NdeAZ73gJQTZT7dgLrj33YYMkjp2u6vYD8K1K57
img.jav100.com/ipfs/
17 KB
17 KB
Image
General
Full URL
http://img.jav100.com/ipfs/Qmczv45NdeAZ73gJQTZT7dgLrj33YYMkjp2u6vYD8K1K57
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d7134bef9adeee56f30da5218038e7cd0f4b61ab5b1e58e181aeae865c901f7b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqntuijtzmuloera4wrsoqhge4e6h7m6byqdvtt4zt7z3fuswqb65q
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"Qmczv45NdeAZ73gJQTZT7dgLrj33YYMkjp2u6vYD8K1K57"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmczv45NdeAZ73gJQTZT7dgLrj33YYMkjp2u6vYD8K1K57
CF-RAY
475adb57254b97c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmNhrrSCUnusLFQAwcaQsPUVxWK68gBw9BHD1wRPcfSQY2
img.jav100.com/ipfs/
14 KB
15 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmNhrrSCUnusLFQAwcaQsPUVxWK68gBw9BHD1wRPcfSQY2
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
56b6e2fbd337208e14946eeb2fe6f19af8b2e70c1f47103dca6f239eeed4e9d8

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqak3xnqrbt74epivcywpoa5bxukcek4dpeqtebu7yjb2565wkdh2y
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmNhrrSCUnusLFQAwcaQsPUVxWK68gBw9BHD1wRPcfSQY2"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmNhrrSCUnusLFQAwcaQsPUVxWK68gBw9BHD1wRPcfSQY2
CF-RAY
475adb57f631c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmT5547p7ZJ4eE7e43GUzMXGFP8FLG8rw1wyaM4a572BWH
img.jav100.com/ipfs/
45 KB
46 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmT5547p7ZJ4eE7e43GUzMXGFP8FLG8rw1wyaM4a572BWH
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
98bdc9cc355cc9e4152e174fd8b00efa8f669ebf634c51b34903e1237ca0e0cc

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqemtflf7b5aeigav76wkrkxdn5z2cekwjmib5chwk3z6ohgcohjuq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmT5547p7ZJ4eE7e43GUzMXGFP8FLG8rw1wyaM4a572BWH"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmT5547p7ZJ4eE7e43GUzMXGFP8FLG8rw1wyaM4a572BWH
CF-RAY
475adb57e221c288-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmNjmdvCWbKXtGgyzD6avDxvFkw53qceUxzgzZcddRiD83
img.jav100.com/ipfs/
46 KB
47 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmNjmdvCWbKXtGgyzD6avDxvFkw53qceUxzgzZcddRiD83
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
b917b213d53e75c7e60409a9cd8e3ffbac1333c6b78e0f5b3eab2f3f73d8bdc9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqal3brd3q77xc3ndvy7upu74loghiqd7hdulxtj4sxy5ndky5wema
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmNjmdvCWbKXtGgyzD6avDxvFkw53qceUxzgzZcddRiD83"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmNjmdvCWbKXtGgyzD6avDxvFkw53qceUxzgzZcddRiD83
CF-RAY
475adb5793a697b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmUeZfGAWPCMgjjFNVeqXVo34rHyQ3FAmK6dgXEbHUqehM
img.jav100.com/ipfs/
38 KB
39 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmUeZfGAWPCMgjjFNVeqXVo34rHyQ3FAmK6dgXEbHUqehM
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d9762711535423a38818e336a1524b4a2fdbb068719d7d9a3c9502cc0f6e98e2

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqf3pg57w3nfsbvsm3ce5grvxjo6ix3dh4c53xoyg4si4wsexdfvca
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmUeZfGAWPCMgjjFNVeqXVo34rHyQ3FAmK6dgXEbHUqehM"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmUeZfGAWPCMgjjFNVeqXVo34rHyQ3FAmK6dgXEbHUqehM
CF-RAY
475adb5845609792-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcwYbeML6vkbM932BWw5hZVmByq9rCiP3EVdC3NeoKVBy
img.jav100.com/ipfs/
39 KB
40 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmcwYbeML6vkbM932BWw5hZVmByq9rCiP3EVdC3NeoKVBy
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
0710e1f6ee2bfff8bd02c8d92a7011ccb9128c2bf07a05aae8878de29a933c61

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqnr5ai7pecblxvfpz6rxwzbptfjx77zxgguhhqahye4uvwxj3qk7a
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmcwYbeML6vkbM932BWw5hZVmByq9rCiP3EVdC3NeoKVBy"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmcwYbeML6vkbM932BWw5hZVmByq9rCiP3EVdC3NeoKVBy
CF-RAY
475adb58466ec300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmeDAoV58Eh3tWAqrYkprSt788rTQnz6DzyqsLci6896k8
img.jav100.com/ipfs/
14 KB
15 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmeDAoV58Eh3tWAqrYkprSt788rTQnz6DzyqsLci6896k8
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
c9f5ae756b9fdb22232a4ba9d3247679de32b076216f3f8f3ccb07fbbfd5230d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqoxuc6zq5wit4pyzjujq4adrwc6kvlzkkgfvki5hed6j2l7kcgwci
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmeDAoV58Eh3tWAqrYkprSt788rTQnz6DzyqsLci6896k8"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmeDAoV58Eh3tWAqrYkprSt788rTQnz6DzyqsLci6896k8
CF-RAY
475adb57f5489792-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbZc5KoxbPqdbxeMypzYxYCKocQqvfzmHsmDSv91viqqj
img.jav100.com/ipfs/
52 KB
53 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmbZc5KoxbPqdbxeMypzYxYCKocQqvfzmHsmDSv91viqqj
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7ce89255aaf78910ee695a2d6e8e49d7b36e3fdb903a47ce6d0fbec6f738bb94

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqmi6marg6db2vtatebpzfhfy4zk5qcdqx7incafm5cgwurdrnrmaq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmbZc5KoxbPqdbxeMypzYxYCKocQqvfzmHsmDSv91viqqj"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmbZc5KoxbPqdbxeMypzYxYCKocQqvfzmHsmDSv91viqqj
CF-RAY
475adb57f358c2f6-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmdLiQGk3H3p1ftjMTYgLmthkojX8njuKUfqPvaSkM7LPe
img.jav100.com/ipfs/
21 KB
22 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmdLiQGk3H3p1ftjMTYgLmthkojX8njuKUfqPvaSkM7LPe
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
3959842c53d24b7723a95810ec046fd12ec810dcb990da5bae0daa90adc84ada

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqn5y32ugzygud3nnv4oh665nfuh2wu6yikch67kmhvo74puizyvhi
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmdLiQGk3H3p1ftjMTYgLmthkojX8njuKUfqPvaSkM7LPe"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmdLiQGk3H3p1ftjMTYgLmthkojX8njuKUfqPvaSkM7LPe
CF-RAY
475adb57b3b497b0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmaR4ZCYCXrbLmH5ZqRhZzHsLAf12B9VCb37BYZBoTgtS7
img.jav100.com/ipfs/
52 KB
53 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmaR4ZCYCXrbLmH5ZqRhZzHsLAf12B9VCb37BYZBoTgtS7
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
070eba5a3ed2ab856567ff55eedd438c70fba79e74da32f530275b650034c1e4

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqlg3mhsppzgwy4b6byw5zego72ibd4iz7orr7zn7fubgf2fepc7va
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmaR4ZCYCXrbLmH5ZqRhZzHsLAf12B9VCb37BYZBoTgtS7"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmaR4ZCYCXrbLmH5ZqRhZzHsLAf12B9VCb37BYZBoTgtS7
CF-RAY
475adb57b58197c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVk5riv1B9oz96v3rLwGSvWoHhfCevx8MDF6iGdxSDS7v
img.jav100.com/ipfs/
45 KB
46 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmVk5riv1B9oz96v3rLwGSvWoHhfCevx8MDF6iGdxSDS7v
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2a4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
60c902318c360ff87d4ce2122dc15ace8d955a4be0e46a2a203a93c27cc03269

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqg4au2jbu3tqrkc45neupjgzj6wyzlb3vv4az6jouddmbfv5olczi
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmVk5riv1B9oz96v3rLwGSvWoHhfCevx8MDF6iGdxSDS7v"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmVk5riv1B9oz96v3rLwGSvWoHhfCevx8MDF6iGdxSDS7v
CF-RAY
475adb585679c300-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmPjPrjJ58vvXGvZJnfcNV79i9upAVtZJf8u2pFnqesYa5
img.jav100.com/ipfs/
53 KB
54 KB
Image
General
Full URL
http://img.jav100.com/ipfs/QmPjPrjJ58vvXGvZJnfcNV79i9upAVtZJf8u2pFnqesYa5
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2b4f , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
31f07c5548ccf25250945f38e4b68ced9eff8645ba57862ede5abe3bd9c57f4c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
img.jav100.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.jav100.com/
Cookie
__cfduid=d4006f2498dba5199e1b2ec47b669ef291541541874
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Transfer-Encoding
chunked
Suborigin
ipfs000bciqbjl2azk2eft6emhwsshujusfzni2ky3ldfs3ezfiy66kgw56isoq
Connection
keep-alive
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
W/"QmPjPrjJ58vvXGvZJnfcNV79i9upAVtZJf8u2pFnqesYa5"
Vary
Accept-Encoding
Access-Control-Allow-Methods
GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmPjPrjJ58vvXGvZJnfcNV79i9upAVtZJf8u2pFnqesYa5
CF-RAY
475adb5825a197c8-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
d9b96ae937.css
use.fontawesome.com/
1 KB
684 B
Stylesheet
General
Full URL
https://use.fontawesome.com/d9b96ae937.css
Requested by
Host: use.fontawesome.com
URL: https://use.fontawesome.com/d9b96ae937.js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
756d66d3e689148b7b08a627588933a165d285bbc1cdbd9651cf64a3aed4dd3c

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Wed, 21 Sep 2016 18:06:29 GMT
server
NetDNA-cache/2.2
x-amz-request-id
2350DB6AC0AC3483
etag
W/"cda220062b227e44b01d72eb0025e654"
x-cache
HIT
content-type
text/css
status
200
cache-control
max-age=0, private, must-revalidate
x-amz-id-2
7WhIJTXlhkhiuPpCsjr0tMyEjFVT5N7AcRr86D4ufKZ6k+Vs1lm0PHILT8dkwCOz4mFeI7UBQTE=
font-awesome-css.min.css
use.fontawesome.com/releases/v4.6.3/css/
28 KB
7 KB
Stylesheet
General
Full URL
https://use.fontawesome.com/releases/v4.6.3/css/font-awesome-css.min.css
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
61f7de13520a14ec37ba246b4846f5850ab87ffbc0d5b366709509c1d97d83b5

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Thu, 12 May 2016 16:47:01 GMT
server
NetDNA-cache/2.2
status
200
etag
W/"7937bc10f6c59ceed1ff6e6bbebfcd8d"
vary
Origin, Access-Control-Request-Headers, Access-Control-Request-Method, Accept-Encoding
access-control-allow-methods
GET
content-type
text/css
access-control-allow-origin
*
access-control-max-age
3000
cache-control
max-age=31556926
x-cache
HIT
znWaa3gu
dcba.popcash.net/
0
117 B
XHR
General
Full URL
https://dcba.popcash.net/znWaa3gu
Requested by
Host: cdn.popcash.net
URL: http://cdn.popcash.net/pop.js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
54.84.122.125 Ashburn, United States, ASN14618 (AMAZON-AES - Amazon.com, Inc., US),
Reverse DNS
ec2-54-84-122-125.compute-1.amazonaws.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

status
204
pragma
no-cache
date
Tue, 06 Nov 2018 22:04:36 GMT
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
expires
0
fontawesome-webfont.woff2
use.fontawesome.com/releases/v4.6.3/fonts/
70 KB
71 KB
Font
General
Full URL
https://use.fontawesome.com/releases/v4.6.3/fonts/fontawesome-webfont.woff2
Requested by
Host: use.fontawesome.com
URL: https://use.fontawesome.com/d9b96ae937.js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
23.111.9.35 Phoenix, United States, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
Software
NetDNA-cache/2.2 /
Resource Hash
7dacf83f51179de8d7980a513e67ab3a08f2c6272bb5946df8fd77c0d1763b73

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://use.fontawesome.com/d9b96ae937.css
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Thu, 12 May 2016 16:47:01 GMT
server
NetDNA-cache/2.2
status
200
etag
W/"e6cf7c6ec7c2d6f670ae9d762604cb0b"
vary
Origin, Access-Control-Request-Headers, Access-Control-Request-Method, Accept-Encoding
access-control-allow-methods
GET
content-type
application/octet-stream
access-control-allow-origin
*
access-control-max-age
3000
cache-control
max-age=31556926
x-cache
HIT
analytics.js
www.google-analytics.com/
42 KB
17 KB
Script
General
Full URL
https://www.google-analytics.com/analytics.js
Requested by
Host: www.googletagmanager.com
URL: https://www.googletagmanager.com/gtag/js?id=UA-116369384-1
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:81b::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8cb05b675fe6419a9e91eb587c60902c7ed1cb6c42b8cff8ce404ef89f635cde
Security Headers
Name Value
Strict-Transport-Security max-age=10886400; includeSubDomains; preload
X-Content-Type-Options nosniff

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=10886400; includeSubDomains; preload
content-encoding
gzip
x-content-type-options
nosniff
last-modified
Thu, 11 Oct 2018 19:41:26 GMT
server
Golfe2
age
5717
date
Tue, 06 Nov 2018 20:29:19 GMT
vary
Accept-Encoding
content-type
text/javascript
status
200
cache-control
public, max-age=7200
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
17301
expires
Tue, 06 Nov 2018 22:29:19 GMT
marketplace.min.js
static.trafficjunky.net/js/
14 KB
14 KB
Script
General
Full URL
http://static.trafficjunky.net/js/marketplace.min.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
205.185.208.85 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip085.ssl.hwcdn.net
Software
/
Resource Hash
5cd1cf5649c93d977b4957ef36d3120901e05e829facc5d6f8bc52f6e5962f6b

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Last-Modified
Tue, 22 Mar 2016 20:09:00 GMT
ETag
"1458677340"
X-HW
1541541876.dop033.fr8.t,1541541876.cds055.fr8.c
Content-Type
application/javascript
Cache-Control
max-age=86400
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
13871
jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/3.0.0/
84 KB
30 KB
Script
General
Full URL
https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:821::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
266bcea0bb58b26aa5b16c5aee60d22ccc1ae9d67daeb21db6bad56119c3447d
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 17:40:10 GMT
content-encoding
gzip
x-content-type-options
nosniff
age
15866
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
30186
x-xss-protection
1; mode=block
last-modified
Tue, 20 Dec 2016 18:17:03 GMT
server
sffe
vary
Accept-Encoding
content-type
text/javascript; charset=UTF-8
access-control-allow-origin
*
cache-control
public, max-age=31536000, stale-while-revalidate=2592000
accept-ranges
bytes
timing-allow-origin
*
expires
Wed, 06 Nov 2019 17:40:10 GMT
tether.min.js
cdnjs.cloudflare.com/ajax/libs/tether/1.2.0/js/
23 KB
7 KB
Script
General
Full URL
https://cdnjs.cloudflare.com/ajax/libs/tether/1.2.0/js/tether.min.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700::6813:c797 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
b483c27381671c52377f3ae33218233ce6b57b41f52aed2d8aa6d51f68e689f4
Security Headers
Name Value
Strict-Transport-Security max-age=15780000; includeSubDomains

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
vary
Accept-Encoding
cf-cache-status
HIT
status
200
served-in-seconds
0.001
last-modified
Thu, 17 May 2018 09:25:49 GMT
server
cloudflare
etag
W/"5afd4a9d-5b0c"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
strict-transport-security
max-age=15780000; includeSubDomains
content-type
application/javascript
access-control-allow-origin
*
cache-control
public, max-age=30672000
cf-ray
475adb56bc8a96a6-FRA
expires
Sun, 27 Oct 2019 22:04:36 GMT
bootstrap.min.js
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/js/
44 KB
11 KB
Script
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/js/bootstrap.min.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
0245cd902b95978bcfa8f9e591652644603b7c764585baad2e074594398981cc

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
last-modified
Tue, 20 Feb 2018 05:58:03 GMT
status
200
etag
"1519106283"
vary
Accept-Encoding
x-cache
HIT
content-type
application/javascript; charset=utf-8
access-control-allow-origin
*
cache-control
max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
content-length
11571
crypta.js
statdynamic.com/lib/
695 KB
98 KB
Script
General
Full URL
http://statdynamic.com/lib/crypta.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
2606:4700:30::681b:a51e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
637eb88ffd01f4a6afc558e0ad1cd32992cf7c4ecf5ad51aa2f891d88520cac9

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Thu, 18 Oct 2018 21:37:04 GMT
Server
cloudflare
ETag
W/"747416915"
Vary
Accept-Encoding
Content-Type
text/javascript
Access-Control-Allow-Origin
*
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
475adb56b0edc2ce-FRA
Expires
Wed, 07 Nov 2018 02:04:36 GMT
js
ca.clcknads.pro/v1/a/23405/
17 KB
6 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/a/23405/js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
3f909d6a3f29a5a3019acbb9c582b1ce68e9a4a340ed73533ca127e5e300d19b

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
text/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
23404
ca.clcknads.pro/v1/apop/js/zone/
94 KB
38 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/apop/js/zone/23404
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
fd2540878932693617525353f32b31cd6e01e5687d0c940cf46640199a6aa473

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
text/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
HhyaU5sn9vOmLzloC_WoEoZK.woff2
fonts.gstatic.com/s/dosis/v7/
13 KB
14 KB
Font
General
Full URL
https://fonts.gstatic.com/s/dosis/v7/HhyaU5sn9vOmLzloC_WoEoZK.woff2
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:81b::2003 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
8e03b8915ee8e98be8a3a929d39c15f7aa8b47b6726337ef5e80ccbef6eae92a
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://fonts.googleapis.com/css?family=Dosis|Oswald:700
Origin
http://www.jav100.com

Response headers

date
Sun, 04 Nov 2018 12:30:34 GMT
x-content-type-options
nosniff
last-modified
Tue, 10 Oct 2017 23:06:39 GMT
server
sffe
age
207242
status
200
content-type
font/woff2
access-control-allow-origin
*
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
13748
x-xss-protection
1; mode=block
expires
Mon, 04 Nov 2019 12:30:34 GMT
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 0F91
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234393&type=728x90&p=http%3A//www.jav100.com/&dt=1541541876259&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
nginx
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225be20ff446d519.605368643811210739%22%3B%7D; expires=Thu, 05-Nov-2020 22:04:36 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B40%B1%B0N%B42%B1%AA.%06%12J%19%99%25%C5J%D6%99V%86%D6%60nIfn%2A%98kj%02B%16%E6f%40q%0B%2B%A5%9C%C4%E2%12%ACr%86%E6VJ%C9%89%05%05%99y%E9%F1iE%A9%85%A5%A9y%C9%95J%10%C3%0CML%0C%94%ACkk%01%A3%93%24%08; expires=Wed, 07-Nov-2018 22:04:36 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 0E2D
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234403&type=300x100&p=http%3A//www.jav100.com/&dt=1541541876261&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
nginx
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446da48.20427464438995921%22%3B%7D; expires=Thu, 05-Nov-2020 22:04:36 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B140%B1N%B42%B1%AA.%06%12J%19%99%25%C5J%D6%99V%86%D6%60nIfn%2A%98kj%02B%16%E6f%40q%0B%2B%A5%9C%C4%E2%12%ACr%86%E6VJ%C9%89%05%05%99y%E9%F1iE%A9%85%A5%A9y%C9%95J%10%C3%0CML%0C%94%ACkk%01%A1%DA%24%04; expires=Wed, 07-Nov-2018 22:04:36 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame FF5B
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234415&type=300x50&p=http%3A//www.jav100.com/&dt=1541541876264&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
nginx
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D; expires=Thu, 05-Nov-2020 22:04:36 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame EBB5
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234375&type=300x250&p=http%3A//www.jav100.com/&dt=1541541876319&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
nginx
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D; expires=Thu, 05-Nov-2020 22:04:36 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B401%B3N%B42%B1%AA.%06%12J%19%99%25%C5J%D6%99V%86%D6%60nIfn%2A%98kj%02B%16%E6f%40q%0B%2B%A5%9C%C4%E2%12%ACr%86%E6VJ%C9%89%05%05%99y%E9%F1iE%A9%85%A5%A9y%C9%95J%10%C3%0CML%0C%94%ACkk%01%A2%B3%24%06; expires=Wed, 07-Nov-2018 22:04:36 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 1B0C
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234377&type=300x250&p=http%3A//www.jav100.com/&dt=1541541876320&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
nginx
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D; expires=Thu, 05-Nov-2020 22:04:36 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42210%B401%B3N%B42%B1%AA.%06%12J%19%99%25%C5J%D6%99V%86%D6%60nIfn%2A%98kj%02B%16%E6f%40q%0B%2B%A5%9C%C4%E2%12%ACr%86%E6VJ%C9%89%05%05%99y%E9%F1iE%A9%85%A5%A9y%C9%95J%10%C3%0CML%0C%94%ACkk%01%A2%B3%24%06; expires=Wed, 07-Nov-2018 22:04:36 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 60AD
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2234379&type=300x250&p=http%3A//www.jav100.com/&dt=1541541876321&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
nginx
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225be20ff446e7c7.94534493560987233%22%3B%7D; expires=Thu, 05-Nov-2020 22:04:36 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B4223%B2%B443%B2N%B42%B1%AA.%06%12J%19%99%25%C5J%D6%99V%86%D6%60nIfn%2A%98kj%02B%16%E6f%40q%0B%2B%A5%9C%C4%E2%12%ACr%86%E6VJ%C9%89%05%05%99y%E9%F1iE%A9%85%A5%A9y%C9%95J%10%C3%0CML%0C%94%ACkk%01%A7%B1%24%11; expires=Wed, 07-Nov-2018 22:04:36 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
TK3hWkUHHAIjg75-ohoTus9CAZek1w.woff2
fonts.gstatic.com/s/oswald/v16/
9 KB
10 KB
Font
General
Full URL
https://fonts.gstatic.com/s/oswald/v16/TK3hWkUHHAIjg75-ohoTus9CAZek1w.woff2
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:81b::2003 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
19e1c4c97917724cacf9f2e3c544ed0925a14ef28a79565b7bae38fc70ac82f2
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://fonts.googleapis.com/css?family=Dosis|Oswald:700
Origin
http://www.jav100.com

Response headers

date
Sat, 03 Nov 2018 10:14:30 GMT
x-content-type-options
nosniff
last-modified
Tue, 07 Nov 2017 15:19:11 GMT
server
sffe
age
301806
status
200
content-type
font/woff2
access-control-allow-origin
*
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
9644
x-xss-protection
1; mode=block
expires
Sun, 03 Nov 2019 10:14:30 GMT
Cookie set ads
ads.trafficjunky.net/ Frame ADCE
0
0
Document
General
Full URL
http://ads.trafficjunky.net/ads?zone_id=1379941&ref=www.jav100.com&pid=69e50e4f-ffbb-4096-b260-06ec611975be&ts=1541541876
Requested by
Host: static.trafficjunky.net
URL: http://static.trafficjunky.net/js/marketplace.min.js
Protocol
HTTP/1.1
Server
94.199.253.33 , Netherlands, ASN48684 (VIKINGHOST, NL),
Reverse DNS
Software
openresty /
Resource Hash

Request headers

Host
ads.trafficjunky.net
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
openresty
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html
Content-Length
1917
Connection
close
Cache-Control
private, no-cache, no-cache, proxy-revalidate
Set-Cookie
tj_UUID=b71e4727-1fa3-4597-9329-8bbc95a34a25; Path=/; Domain=trafficjunky.net; Expires=Thu, 06 Dec 2018 22:04:36 GMT
Status
200 OK
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET,POST
Access-Control-Allow-Headers
Content-Type
Access-Control-Max-Age
86400
Cookie set ads
ads.trafficjunky.net/ Frame 1685
0
0
Document
General
Full URL
http://ads.trafficjunky.net/ads?zone_id=1379951&ref=www.jav100.com&pid=69e50e4f-ffbb-4096-b260-06ec611975be&ts=1541541876
Requested by
Host: static.trafficjunky.net
URL: http://static.trafficjunky.net/js/marketplace.min.js
Protocol
HTTP/1.1
Server
94.199.253.33 , Netherlands, ASN48684 (VIKINGHOST, NL),
Reverse DNS
Software
openresty /
Resource Hash

Request headers

Host
ads.trafficjunky.net
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
openresty
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html
Content-Length
1917
Connection
close
Cache-Control
private, no-cache, no-cache, proxy-revalidate
Set-Cookie
tj_UUID=0cb1ae82-e087-49bc-874b-7237bcfe66ba; Path=/; Domain=trafficjunky.net; Expires=Thu, 06 Dec 2018 22:04:36 GMT
Status
200 OK
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET,POST
Access-Control-Allow-Headers
Content-Type
Access-Control-Max-Age
86400
Cookie set ads
ads.trafficjunky.net/ Frame 2DA1
0
0
Document
General
Full URL
http://ads.trafficjunky.net/ads?zone_id=1379961&ref=www.jav100.com&pid=69e50e4f-ffbb-4096-b260-06ec611975be&ts=1541541876
Requested by
Host: static.trafficjunky.net
URL: http://static.trafficjunky.net/js/marketplace.min.js
Protocol
HTTP/1.1
Server
94.199.253.33 , Netherlands, ASN48684 (VIKINGHOST, NL),
Reverse DNS
Software
openresty /
Resource Hash

Request headers

Host
ads.trafficjunky.net
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.jav100.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/

Response headers

Server
openresty
Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Type
text/html
Content-Length
2030
Connection
close
Cache-Control
private, no-cache, no-cache, proxy-revalidate
Set-Cookie
tj_UUID=8168c19d-ca36-4d35-8180-33f591fb9f03; Path=/; Domain=trafficjunky.net; Expires=Thu, 06 Dec 2018 22:04:36 GMT f00=c-vFO3Rh41sB; Path=/; Domain=trafficjunky.net; Expires=Thu, 06 Dec 2018 22:04:36 GMT
Status
200 OK
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET,POST
Access-Control-Allow-Headers
Content-Type
Access-Control-Max-Age
86400
collect
www.google-analytics.com/r/
35 B
111 B
Image
General
Full URL
https://www.google-analytics.com/r/collect?v=1&_v=j71&a=264191249&t=pageview&_s=1&dl=http%3A%2F%2Fwww.jav100.com%2F&ul=en-us&de=UTF-8&dt=~%20%E4%B8%BB%E9%A0%81%20~%20%E5%85%8D%E8%B2%BB%E6%97%A5%E6%9C%ACJAV%E7%B7%9A%E4%B8%8A%E4%B8%B2%E6%B5%81%20%E7%AB%8B%E5%8D%B3%E8%A7%80%E7%9C%8B%20~%20Jav%20100%20~&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&_u=IEBAAUAB~&jid=94062224&gjid=906775941&cid=900310189.1541541876&tid=UA-116369384-1&_gid=1758159314.1541541876&_r=1&gtm=2ouas3&z=327856059
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:81b::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Tue, 06 Nov 2018 22:04:36 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Fri, 01 Jan 1990 00:00:00 GMT
pop.js
c1.popads.net/
68 KB
28 KB
Script
General
Full URL
http://c1.popads.net/pop.js
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
195.181.170.18 , United Kingdom, ASN60068 (CDN77, GB),
Reverse DNS
frankfurt-15.cdn77.com
Software
CDN77-Turbo /
Resource Hash
fefc31fe8b6a75aa50147bc062e2ed750e20c8d78fb24a02342c17f15f2f261a

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:36 GMT
Content-Encoding
gzip
Last-Modified
Sun, 15 Apr 2018 14:16:47 GMT
Server
CDN77-Turbo
X-Edge-Location
frankfurtDE
ETag
W/"5ad35ecf-1108b"
Transfer-Encoding
chunked
X-Cache
HIT
Content-Type
application/javascript
Access-Control-Allow-Origin
*
Cache-Control
max-age=604800
X-Edge-IP
195.181.170.15
Connection
keep-alive
X-Age
574728
Expires
Wed, 25 Apr 2018 06:25:19 GMT
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
a96b72a3-b219-4019-9833-4945019af39e
http://www.jav100.com/
163 KB
0
Other
General
Full URL
blob:http://www.jav100.com/a96b72a3-b219-4019-9833-4945019af39e
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167049
0
ca.clcknads.pro/v1/vst_debug/23405/0/
0
478 B
Image
General
Full URL
http://ca.clcknads.pro/v1/vst_debug/23405/0/0
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:36 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 06 Nov 2018 22:04:36 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain
Expires
Tue, 06 Nov 2018 22:04:36 UTC
truncated
/
70 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
dfb9498e99df31c91fcb37341a78fdc0e68740fcfc339516d80561683c9e89e4

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
text/plain
truncated
/
4 KB
0
Media
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
video/mp4
c
serve.popads.net/
277 B
815 B
Script
General
Full URL
http://serve.popads.net/c?r=1541541876&v=3&siteId=1505751&minBid=&popundersPerIP=&blockedCountries=&documentRef=&s=1600,1200,1,1600,1200
Requested by
Host: c1.popads.net
URL: http://c1.popads.net/pop.js
Protocol
HTTP/1.1
Server
216.21.13.16 , United States, ASN53334 (TUT-AS - Total Uptime Technologies, LLC, US),
Reverse DNS
Software
/
Resource Hash
22fcba82930953684f6b3661b6880d2a35cd8581fd4b2fb37331b0897bd88a04

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:37 GMT
Access-Control-Allow-Origin
*
Content-Type
text/javascript;charset=UTF-8
PopAds-EC
GIID
Cache-Control
private, no-store, no-cache, must-revalidate, no-transform, max-age=0
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
277
uuid
ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/
Redirect Chain
  • http://ca.clcknads.pro/v1/a/23405/imp?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.jav100.com%2F
  • http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid
0
-1 B
XHR
General
Full URL
http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:36 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 06 Nov 2018 22:04:36 UTC
Server
nginx
Access-Control-Allow-Origin
http://www.jav100.com
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Location
//ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
application/json; charset=utf-8
Content-Length
0
Expires
Tue, 06 Nov 2018 22:04:36 UTC

Redirect headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:36 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 06 Nov 2018 22:04:36 UTC
Server
nginx
Access-Control-Allow-Origin
http://www.jav100.com
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Location
//ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
application/json; charset=utf-8
Content-Length
0
Expires
Tue, 06 Nov 2018 22:04:36 UTC
f357de16-e20f-11e8-a2db-f303b2b916db
ca.clcknads.pro/check/
Redirect Chain
  • http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db/uuid
  • http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db
0
-1 B
XHR
General
Full URL
http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:37 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 06 Nov 2018 22:04:37 UTC
Server
nginx
Access-Control-Allow-Origin
http://www.jav100.com
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Location
//ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
application/json; charset=utf-8
Content-Length
0
Expires
Tue, 06 Nov 2018 22:04:37 UTC

Redirect headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:37 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 06 Nov 2018 22:04:37 UTC
Server
nginx
Access-Control-Allow-Origin
http://www.jav100.com
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Location
//ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
application/json; charset=utf-8
Content-Length
0
Expires
Tue, 06 Nov 2018 22:04:37 UTC
f357de16-e20f-11e8-a2db-f303b2b916db
ca.clcknads.pro/check/
3 KB
2 KB
XHR
General
Full URL
http://ca.clcknads.pro/check/f357de16-e20f-11e8-a2db-f303b2b916db
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
bedd71ecb31ba0b2545539485511b642632948ad31be8531d6a1d035a895d844

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

Date
Tue, 06 Nov 2018 22:04:37 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/xml
Access-Control-Allow-Origin
http://www.jav100.com
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
preroll.engine
engine.phn.doublepimp.com/
11 KB
3 KB
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=52a55c19-4bba-4caf-a1b1-c19d0ecc8ed5&zid=9276&pageurl=http%3A%2F%2Fwww.jav100.com%2F&subId=79476&pw=426&ph=239
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23405/js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
674a7709383b8fb792d760c6b5e53f7ea5b73cc414fd5783d749a0fce9971d77

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 22:04:36 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
http://www.jav100.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
2683
/
c.adsco.re/
5 B
404 B
Script
General
Full URL
http://c.adsco.re/
Requested by
Host: serve.popads.net
URL: http://serve.popads.net/c?r=1541541876&v=3&siteId=1505751&minBid=&popundersPerIP=&blockedCountries=&documentRef=&s=1600,1200,1,1600,1200
Protocol
HTTP/1.1
Server
2606:4700::6811:a7ba , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:37 GMT
Server
cloudflare
Vary
Accept-Encoding
Content-Type
text/plain;charset=UTF-8
Cache-Control
max-age=259200,public,immutable
Connection
keep-alive
CF-RAY
475adb5c1641c2d8-FRA
Content-Length
5
v3
pt.ptawe.com/vast/
4 KB
4 KB
XHR
General
Full URL
https://pt.ptawe.com/vast/v3?psid=ed_sexuvs1&utm_source=netwkclckne&utm_medium=network&ms_notrack=1
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23405/js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
93.93.51.191 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
aa1a9469a931811b14292bbac704c26d81d0f1d683ebd2424421e69416da11f4

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.jav100.com/
Origin
http://www.jav100.com

Response headers

date
Tue, 06 Nov 2018 22:04:37 GMT
server
unknown
status
200
content-type
text/xml; charset=utf-8
access-control-allow-origin
http://www.jav100.com
cache-control
no-cache
access-control-allow-credentials
true
x-real-source
-
3
ca.clcknads.pro/v1/vst_debug/23405/200/
0
478 B
Image
General
Full URL
http://ca.clcknads.pro/v1/vst_debug/23405/200/3
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Tue, 06 Nov 2018 22:04:37 GMT
Referrer-Policy
unsafe-url
Last-Modified
Tue, 06 Nov 2018 22:04:37 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain
Expires
Tue, 06 Nov 2018 22:04:37 UTC
f47241ebd2a781418fa2d677247a8cd7.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/
32 KB
0
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/f47241ebd2a781418fa2d677247a8cd7.mp4
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Referer
http://www.jav100.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=0-
chrome-proxy
frfr

Response headers

date
Tue, 06 Nov 2018 22:04:37 GMT
last-modified
Mon, 12 Mar 2018 13:04:24 GMT
server
nginx
etag
"8ec0110c1c8474b5df08e3f733648e74"
status
206
content-type
video/mp4
Content-Range
bytes 0-1617536/1617537
cache-control
max-age=1209600, public
Content-Length
1617537
expires
Tue, 20 Nov 2018 22:04:37 GMT
truncated
/
715 B
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
image/png
truncated
/
2 KB
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
image/png
f47241ebd2a781418fa2d677247a8cd7.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/
44 KB
44 KB
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/f47241ebd2a781418fa2d677247a8cd7.mp4
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash
058e7455fbf09b7b88a669db1d890226f155199feb5f363e79a1ff789c9c2b6e

Request headers

Referer
http://www.jav100.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=1572864-

Response headers

date
Tue, 06 Nov 2018 22:04:37 GMT
last-modified
Mon, 12 Mar 2018 13:04:24 GMT
server
nginx
etag
"8ec0110c1c8474b5df08e3f733648e74"
status
206
content-type
video/mp4
Content-Range
bytes 1572864-1617536/1617537
cache-control
max-age=1209600, public
Content-Length
44673
expires
Tue, 20 Nov 2018 22:04:37 GMT
f47241ebd2a781418fa2d677247a8cd7.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/
64 KB
0
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/f47241ebd2a781418fa2d677247a8cd7.mp4
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Referer
http://www.jav100.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=32768-

Response headers

date
Tue, 06 Nov 2018 22:04:37 GMT
last-modified
Mon, 12 Mar 2018 13:04:24 GMT
server
nginx
etag
"8ec0110c1c8474b5df08e3f733648e74"
status
206
content-type
video/mp4
Content-Range
bytes 32768-1617536/1617537
cache-control
max-age=1209600, public
Content-Length
1584769
expires
Tue, 20 Nov 2018 22:04:37 GMT
f47241ebd2a781418fa2d677247a8cd7.mp4
galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/
1 MB
0
Media
General
Full URL
https://galleryn0.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a19/f47241ebd2a781418fa2d677247a8cd7.mp4
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Referer
http://www.jav100.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=98304-

Response headers

date
Tue, 06 Nov 2018 22:04:37 GMT
last-modified
Mon, 12 Mar 2018 13:04:24 GMT
server
nginx
etag
"8ec0110c1c8474b5df08e3f733648e74"
status
206
content-type
video/mp4
Content-Range
bytes 98304-1617536/1617537
cache-control
max-age=1209600, public
Content-Length
1519233
expires
Tue, 20 Nov 2018 22:04:37 GMT
track.engine
engine.phn.doublepimp.com/
0
3 KB
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_7916f7a0-c2ed-415f-aab4-58f06ec69aea&evt=3&evtData=%7b%22am%22%3anull%2c%22EventType%22%3a3%2c%22v2%22%3anull%2c%22v%22%3a%22W_IuYXNUSW91rm2EfQidqCmux9vj3rCyhOM38-FVRdDebQY84qOS5JZHAWU2looN0Vzj5S-XK649v_3nYCqoGdjm5FceXuZm6etEOwEdeFsxJNu-PaOlflS_4nvWXoWM_DohU4u2pPMf-XYLsohwHKf2rj_F6dV4oLqVLUDMmLEoVP0FP7M4IHQN7uPQXQPfa2p7z8KurABRRo8nsl1wyf6vnko7zw4XYcBTFw-e7wJIxWIgV6cBo0RId2qD4hVQ-l_Cv2OMuDa_Iu4V2aohTW_yW278MKb3g5CA56OrE3AHdiEOr_zH08fGHOBaQZEAxs8vNiORJ2EP5unoPwyGWw5dqWiSEF-vnoTBFtMbm8U3dQYxfxmDu_lR1P7dUxiAEJjHn7E1te1_63SpO4ckVivf-jy43wf_c9ZE8tgYDcWC1_psI5D1157XKsnD5r4z1ntkwYmN3-gr0Hy4VsxWM2s_EfrzJZb8t6z99unt_DfhKEajKu7lwyU3d5m-IRZAPKfdVFUgKjvCGuXOFV2AShlPOhrmCgtCrZrEaZ8bX6FfKect9NdqHJfn4znLIjDnbzOedDFvrKBVUZSAuDtpgUlzN1shqdQJVaCN2LB-eLkss6yVyg0HB507KX_8FpApUpHRNXoWTyrjb04-ITGjPiUGLx6_2qFUvbZBCFib4Nt3DUMeIMCa9nVc-U-eh_TKd1Hi7XHwhJs9g2XjmmZADK4e5by3s3eY42zj6uXD7nIZ_SfS5kufbVtvCf2krUMZm1meGj3TowKnVosyX3PElRSiKBGUeHXVx0bV1GY8mWR_tvtkt8ofvoUvB-cLw1OJAgCvhs7HidTymW_zPYEb40W1MfYZ50Uu6aLfllVap9Yev1ba66WhJgQfvKs8pOiRqsQrt5UPA3JXfVYpW-yTVhu_yWJ7k8izsy7GEGv5YQll3XDB6eFmNx1BRTlqR-h3kkH9bdrHfSGkNzZK_YBfVtmoLAzsNs8BkKQgrceuYEeBPMuQHLh7zRGsL68497hXvAmWPcZVKhpr7gbWI-HY1-uZjdCCTLYjxLvWxPZ-ZhfH7Q2_Lvii8wKZFkwXDDs94F5a4GFB_dINHDas58M15vfgF6KkmRnD4co5ZHLcCGCrBtPZ8jtbrbJIcTNMv67sl7jHBRWYiRQKJAtNHFYM5GE0mKrPGNlCmDMAaxf42FC9FW2HPXosydCbSMPzNkxROZtxSJZdni0VEjyBU-wL5jwZctWVaikrSPRZV5ptZ7o0Q-t4K2ZcSwLsjDUFtSU6VUgdaoQKiAD4rysofUetqB2BzUr521XJqBUfRN1BnemClnBj41PrxMSGL2MX4X5CBZXMsHEYOlDpLjaabR5rhf-oSXzq7fFklMD66sqZ8rzGu4Yecmxz2WCDAtkLUNtFwtuK2dUkbM23ft3qfymBsnNIraCSXP1CWnWBmj273QJ8_U8dB9FQStMTSH7Wl39y-FGGl6XiLvD4H4s3Uq1mfqn_3QFOkX2Za3xi-lqBHgCYd_NWZ1MRR3ixloEX3A2ojf8Ayje5iG0icJeDnnOJBTkIuxbSk-NSgVTziXW8VoTMYIVLSDo2N9tjEgkppD9QCbDdxJRMAvLpqJGy7kTwDzqJcXqggleEUWpx7Tc3c5gyqYANusKy-CwbMI9HigFhPwmOUSl8InCUZ7E5T5L5JmXzqI_flqUjgt9EXijuweM1%22%7d
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
69.89.69.120 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:37 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
collect
www.google-analytics.com/
35 B
108 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=pageview&ds=vastplayer&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.jav100.com%2F&cid=476d5f8d1cc99a91223a1092f266b553&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1541541877&cd1=MissMillena&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_MissMillena_07_18.mp4&tid=UA-45543902-10&v=1
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:81b::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Tue, 06 Nov 2018 04:58:57 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
61540
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
4UF.gif
pt.ptawe.com/UoVOk/
43 B
309 B
Image
General
Full URL
http://pt.ptawe.com/UoVOk/4UF.gif?pstool=401_1&psid=ed_sexuvs1&utm_source=netwkclckne&utm_medium=network
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
93.93.51.191 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:37 GMT
Last-Modified
Mon, 28 Sep 1970 06:00:00 GMT
Server
unknown
Content-Type
image/gif
Cache-Control
no-cache
X-Real-Source
-
Connection
close
Content-Length
43
Expires
Tue, 06 Nov 2018 22:04:36 GMT
impression
ca.clcknads.pro/v1/bid/
0
293 B
Image
General
Full URL
http://ca.clcknads.pro/v1/bid/impression?d=q221x0RqgUt4fAqEs8%2BJOTG4QIVdIuJbIPvcU18D6JwQv%2BNw2IAyV9FX487tSCuWLVSSImEFEoko7BqnVCxnWDYE0H4Gr6vt0ifI5RaqWNj08uhaFA8hOWgLX7OrLKDe9qHoomdTq4D0tZT8p9f2Na%2FwhDcABBzIAqB8%2BB%2B4OFQLb6ztUPkgg7vnGAfXFeUo%2BCUrdOKA%2FG%2Bj3NND6z1DADBB2F7O%2FxggzohiM475tA4LcvEPdOSyYg4w6GAJ7Uwzs%2FQnDWvnb12sTsukdUR6lM8DlJSz2TCoksoed7UwZec1YSZplJi4gHXKsFynFBm4Jv3aCLdl7L3YHcHXByS5yNgXje%2F8Ace9k9xJB2a0Ei4A67WsRzR78RCNxvHiRl4eYF7bud8NW5Cyor%2F7h7qoMo7tIKEccAXRGs%2BLOIGNJKoU42%2FasUm6T6922LXye9qZTynvQ7TTgesqWB8WHxmkxwAlKG1%2FJFOWft6XjJXkH59prdnpLoGPmBwRRD4xyBBKgHpGqRHp3hHmvvY5OLd4Pk96P6zNw8qqGaYRYKS5xxWrs3oAbmGHm%2FjzeW5aclZbR8Bf%2B9zaHudFvYXq08nHCk%2Bah%2Fu4XD133G9kO2%2Fz96yRTlHxDVgSzN33c%2F1a2oWdOx0J5%2BsWtSfzVXFqy0SQaPxnOX7C4TbiNEGXkuOR4a%2FOevHmm8Sp9XnzkJuY%2F89vUhs0jiNjtnx1OM8Z57O9x22A6LXdKx2mIW2MgovXd0jCNyAHKK6fRdSQ1pNa%2FHr36ZIJsqHlnILBz5cEaDeIFr557Fhu37T1MJtvGHYZGeBagi%2FlWvtWMvJB4St7PDQ4q1Am14vlgV4wKM3KnyAdU03sKz7AbxajsVn5r1d0SNqRlyac6XZcskkHCWbU7EdHMZK4fZaYV7Fyheph5FPN8EKhs3BYTxL30%2BqJQcjoPCwu6dM1OnmIOAYX6sjY3j%2B2dNnCnKrVlPgbA%2Fk9IqXThT4Xby8nwvKGPljSeZZbsdPJt1eLtV4m6qhrrlR3UHtdF4Chn9IxBbamDInA5UWz9mSPadRjxmp4vHMOqF%2F7Ue8bltJw87Qnnlp26Wv%2Bk4vpkh7%2FqJw6d%2FYS%2BIUsPz488YDOoE9EQnanivH2WxOKBKLIXXcGf5j2C9GjFVag8V%2FCtbCDgNO%2F3xE9wlRhOi4q3ZFIkndw3g%3D%3D
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:37 GMT
Referrer-Policy
unsafe-url
Server
nginx
Access-Control-Max-Age
86400
Content-Type
application/json; charset=utf-8
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Length
0
collect
www.google-analytics.com/
35 B
103 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=event&ds=vastplayer&ea=vast+tracking&ec=vast+player&el=start&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.jav100.com%2F&cid=476d5f8d1cc99a91223a1092f266b553&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1541541877&cd1=MissMillena&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_MissMillena_07_18.mp4&tid=UA-45543902-10&v=1
Requested by
Host: www.jav100.com
URL: http://www.jav100.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:81b::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Tue, 06 Nov 2018 04:58:57 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
61540
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
track.engine
engine.phn.doublepimp.com/
0
285 B
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_7916f7a0-c2ed-415f-aab4-58f06ec69aea&evt=2&evtData=%7b%22vp%22%3a1%2c%22v%22%3a%22W_IuYXNUSW91rm2EfQidqCmux9vj3rCyhOM38-FVRdDebQY84qOS5JZHAWU2looN0Vzj5S-XK649v_3nYCqoGdjm5FceXuZm6etEOwEdeFsxJNu-PaOlflS_4nvWXoWM_DohU4u2pPMf-XYLsohwHKf2rj_F6dV4oLqVLUDMmLEoVP0FP7M4IHQN7uPQXQPfa2p7z8KurABRRo8nsl1wyf6vnko7zw4XYcBTFw-e7wJIxWIgV6cBo0RId2qD4hVQ-l_Cv2OMuDa_Iu4V2aohTW_yW278MKb3g5CA56OrE3AHdiEOr_zH08fGHOBaQZEAxs8vNiORJ2EP5unoPwyGWw5dqWiSEF-vnoTBFtMbm8U3dQYxfxmDu_lR1P7dUxiAEJjHn7E1te1_63SpO4ckVivf-jy43wf_c9ZE8tgYDcWC1_psI5D1157XKsnD5r4z1ntkwYmN3-gr0Hy4VsxWM2s_EfrzJZb8t6z99unt_DfhKEajKu7lwyU3d5m-IRZAPKfdVFUgKjvCGuXOFV2AShlPOhrmCgtCrZrEaZ8bX6FfKect9NdqHJfn4znLIjDnbzOedDFvrKBVUZSAuDtpgUlzN1shqdQJVaCN2LB-eLkss6yVyg0HB507KX_8FpApUpHRNXoWTyrjb04-ITGjPiUGLx6_2qFUvbZBCFib4Nt3DUMeIMCa9nVc-U-eh_TKd1Hi7XHwhJs9g2XjmmZADK4e5by3s3eY42zj6uXD7nIZ_SfS5kufbVtvCf2krUMZm1meGj3TowKnVosyX3PElRSiKBGUeHXVx0bV1GY8mWR_tvtkt8ofvoUvB-cLw1OJAgCvhs7HidTymW_zPYEb40W1MfYZ50Uu6aLfllVap9Yev1ba66WhJgQfvKs8pOiRqsQrt5UPA3JXfVYpW-yTVhu_yWJ7k8izsy7GEGv5YQll3XDB6eFmNx1BRTlqR-h3kkH9bdrHfSGkNzZK_YBfVtmoLAzsNs8BkKQgrceuYEeBPMuQHLh7zRGsL68497hXvAmWPcZVKhpr7gbWI-HY1-uZjdCCTLYjxLvWxPZ-ZhfH7Q2_Lvii8wKZFkwXDDs94F5a4GFB_dINHDas58M15vfgF6KkmRnD4co5ZHLcCGCrBtPZ8jtbrbJIcTNMv67sl7jHBRWYiRQKJAtNHFYM5GE0mKrPGNlCmDMAaxf42FC9FW2HPXosydCbSMPzNkxROZtxSJZdni0VEjyBU-wL5jwZctWVaikrSPRZV5ptZ7o0Q-t4K2ZcSwLsjDUFtSU6VUgdaoQKiAD4rysofUetqB2BzUr521XJqBUfRN1BnemClnBj41PrxMSGL2MX4X5CBZXMsHEYOlDpLjaabR5rhf-oSXzq7fFklMD66sqZ8rzGu4Yecmxz2WCDAtkLUNtFwtuK2dUkbM23ft3qfymBsnNIraCSXP1CWnWBmj273QJ8_U8dB9FQStMTSH7Wl39y-FGGl6XiLvD4H4s3Uq1mfqn_3QFOkX2Za3xi-lqBHgCYd_NWZ1MRR3ixloEX3A2ojf8Ayje5iG0icJeDnnOJBTkIuxbSk-NSgVTziXW8VoTMYIVLSDo2N9tjEgkppD9QCbDdxJRMAvLpqJGy7kTwDzqJcXqggleEUWpx7Tc3c5gyqYANusKy-CwbMI9HigFhPwmOUSl8InCUZ7E5T5L5JmXzqI_flqUjgt9EXijuweM1%22%7d
Protocol
HTTP/1.1
Server
69.89.69.120 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:42 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
ccs.php
click.jasmin.com/awe/
35 B
670 B
Image
General
Full URL
http://click.jasmin.com/awe/ccs.php?ccs=1&psid=ed_sexuvs1&pstool=401_1
Protocol
HTTP/1.1
Server
93.93.53.193 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
cfd2d78ecbf22c168ce6b2f16d92b89871fe94774ae8d0887efe5b53cfe5dd0c

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:42 GMT
Server
unknown
Connection
close
Content-Length
35
Content-Type
image/gif
ccs.php
click.livejasmin.com/awe/
35 B
678 B
Image
General
Full URL
http://click.livejasmin.com/awe/ccs.php?ccs=1&psid=ed_sexuvs1&pstool=401_1
Protocol
HTTP/1.1
Server
93.93.53.194 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
cfd2d78ecbf22c168ce6b2f16d92b89871fe94774ae8d0887efe5b53cfe5dd0c

Request headers

Referer
http://www.jav100.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Tue, 06 Nov 2018 22:04:42 GMT
Server
unknown
Connection
close
Content-Length
35
Content-Type
image/gif

Verdicts & Comments Add Verdict or Comment

90 JavaScript Global Variables

These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.

object| FontAwesomeCdnConfig string| cssUrl function| gtag object| dataLayer string| uid string| wid string| popns object| IOarzRhPlP string| pmauid string| pmawid string| fq object| google_tag_manager string| GoogleAnalyticsObject function| ga function| f6AA object| _2ua object| _0x4fe7 function| _0x1ce8 object| PMAPOP number| realBrowser number| fqq string| ad_idzone string| ad_width string| ad_height string| p number| dt string| exoDocumentProtocol string| ad_sub string| ad_tags string| ad_notify string| ad_el string| ad_type string| ad_screen_resolution undefined| mp_ads_spot_id number| mp_ads_width number| mp_ads_height function| ads_beforeunload function| ads_onblur function| ads_onscroll function| ads_onresize function| mp_ads_loadFIFrame function| mp_ads_load_Scripts object| mp_ads_scripts object| mp_ads_lastScript number| mp_ads_pageLoadedTS function| mp_ads_pageLoaded function| mp_ads_pageUUIDGen string| mp_ads_pageUUID function| mp_ads_activeView function| mp_ads_frameLoadedOutter object| mp_ads_channels undefined| mp_ads_style undefined| mp_ads_syle string| mp_ads_element_id object| _MPADST function| MPstatTracker function| MPStatTracker object| google_tag_data object| gaplugins object| sa object| gaGlobal object| gaData function| $ function| jQuery function| Tether undefined| star undefined| love object| $window object| $document object| _pop object| _0x124f function| _0x4559 object| CRLT object| miner function| v7GG function| f5yy object| _0x138f function| _0x17c1 string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop number| ot function| s3EE object| leca object| Base64 object| BJPPopAds object| detectZoom object| PopAds object| _pao object| mnr

0 Cookies

79 Console Messages

Source Level URL
Text
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Popunder Script @ popunderjs.com
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Author:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Version:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Release:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
111
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
popunderjs.com:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
popunderjs.com:
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
[object HTMLDivElement]
console-api log URL: https://popmyads.com/x/pma(Line 2)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear

Security Headers

This page lists any security headers set by the main page. If you want to understand what these mean and how to use them, head on over to this page

Header Value
X-Frame-Options SAMEORIGIN

Indicators

This is a term in the security industry to describe indicators such as IPs, Domains, Hashes, etc. This does not imply that any of these indicate malicious activity.

ads.exoclick.com
ads.trafficjunky.net
ajax.googleapis.com
c.adsco.re
c1.popads.net
ca.clcknads.pro
cdn.popcash.net
cdn.popmyads.com
cdnjs.cloudflare.com
click.jasmin.com
click.livejasmin.com
dcba.popcash.net
engine.phn.doublepimp.com
fonts.googleapis.com
fonts.gstatic.com
galleryn0.awemwh.com
img.jav100.com
jav100.com
maxcdn.bootstrapcdn.com
popmyads.com
pt.ptawe.com
serve.popads.net
statdynamic.com
static.trafficjunky.net
syndication.exoclick.com
use.fontawesome.com
www.google-analytics.com
www.googletagmanager.com
www.jav100.com
195.181.170.18
205.185.208.85
209.197.3.15
216.21.13.16
23.111.9.35
2606:2800:234:1f1f:1754:1fef:718:1223
2606:4700:30::6812:2a4f
2606:4700:30::6812:2b4f
2606:4700:30::681b:a51e
2606:4700:30::ac40:8504
2606:4700::6811:a7ba
2606:4700::6813:c797
2a00:1450:4001:81b::2003
2a00:1450:4001:81b::2008
2a00:1450:4001:81b::200a
2a00:1450:4001:81b::200e
2a00:1450:4001:821::200a
54.84.122.125
69.89.69.120
69.89.69.121
88.208.59.100
93.93.51.190
93.93.51.191
93.93.53.193
93.93.53.194
94.199.253.33
94.31.29.128
95.211.229.247
0245cd902b95978bcfa8f9e591652644603b7c764585baad2e074594398981cc
058e7455fbf09b7b88a669db1d890226f155199feb5f363e79a1ff789c9c2b6e
06cd6e883331090c8a3e207d91b05ea33591a5c21d12ff65cf56a00a8feb425a
070eba5a3ed2ab856567ff55eedd438c70fba79e74da32f530275b650034c1e4
0710e1f6ee2bfff8bd02c8d92a7011ccb9128c2bf07a05aae8878de29a933c61
12a22c88e8013dfd02bd428c3375196ead934fa7dd28cb330b5e8aad0dd4d2ff
19e1c4c97917724cacf9f2e3c544ed0925a14ef28a79565b7bae38fc70ac82f2
1a3f700293cbd3e9ee3bf757a2bc2dab0dc27d5e26a6baeccf72c50e6162167a
1f1ab1e885f13eeeefbe3ae4f9fbda1859241500623073f48224969370edf1fd
22fcba82930953684f6b3661b6880d2a35cd8581fd4b2fb37331b0897bd88a04
231dd0304bca17f11b4c9c184b8b899e56d505869ded7ac5e6b180e62bd5a656
266bcea0bb58b26aa5b16c5aee60d22ccc1ae9d67daeb21db6bad56119c3447d
2ef817b35f3185aa10b5498a7887cbc4a2460f971b57569eca12db91d15f1cb9
308284a8ada574d11d1bc70dbeec0a29ea1a270edcd56f74712903608e0e88ee
31f07c5548ccf25250945f38e4b68ced9eff8645ba57862ede5abe3bd9c57f4c
32594bbfeab54c44aaf7730afa0ae4439c6a69734e434ed843bd1a7f826fa7e5
349f6e9d417bab56e5974c2d2201bf5fe0c1ad92f3b07c7b8d1b3a6d11ffad78
3959842c53d24b7723a95810ec046fd12ec810dcb990da5bae0daa90adc84ada
3a1edb0c94f6aba7bc43a7173209fc04c1b902eaf56b0f2389c0aab40f391b0e
3d291d1d85055ca72cf7a0dcc66f29e39f5ac7cf582d7254fb02252c4cd7a7b7
3dee48d5f322875cde42750eeac7b80e2c6a87f7a5cda3c1145625b26f3a1fb2
3f909d6a3f29a5a3019acbb9c582b1ce68e9a4a340ed73533ca127e5e300d19b
495f7d79203830a7c59ab044bcfa983e2900991687dcd02c6ae2c27c52cb3101
4c4111786251f051a938a6f69a6a5cf3e7389a144550b2911c7d6de6537a3ea6
4d516ad25528cefed9a1aabbfa3297f2ad93c31e9aa06dc07bbc2f965de714ff
56b6e2fbd337208e14946eeb2fe6f19af8b2e70c1f47103dca6f239eeed4e9d8
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5acba639e57eb27c9e50427c1ff9b847ca1b0e9883d410414ac4dc14f2c1486f
5cd1cf5649c93d977b4957ef36d3120901e05e829facc5d6f8bc52f6e5962f6b
60c902318c360ff87d4ce2122dc15ace8d955a4be0e46a2a203a93c27cc03269
616779af2b64b1f7a7583a86816617d5101a795aec493b4796502552d4ab64b6
61f7de13520a14ec37ba246b4846f5850ab87ffbc0d5b366709509c1d97d83b5
637eb88ffd01f4a6afc558e0ad1cd32992cf7c4ecf5ad51aa2f891d88520cac9
674a7709383b8fb792d760c6b5e53f7ea5b73cc414fd5783d749a0fce9971d77
69dc03b7a19e3f9e5d662b5d15f799b1b8d9f6c56d7b6d1dfd425a0429815f71
6e76f39fc0cad51e775074a569d15407f51485f095790199f795c3f3167c1f43
71132392a53fa05c480068c5f49ac1728cd563d6d5d03b08e261d16160d29484
756d66d3e689148b7b08a627588933a165d285bbc1cdbd9651cf64a3aed4dd3c
7ce89255aaf78910ee695a2d6e8e49d7b36e3fdb903a47ce6d0fbec6f738bb94
7dacf83f51179de8d7980a513e67ab3a08f2c6272bb5946df8fd77c0d1763b73
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
8cb05b675fe6419a9e91eb587c60902c7ed1cb6c42b8cff8ce404ef89f635cde
8dbd6f674a03a8b98a6ddb6ca940da921effef9af4b6e7337980bbef8bd2cbbd
8e03b8915ee8e98be8a3a929d39c15f7aa8b47b6726337ef5e80ccbef6eae92a
903f28573a02c3055b9f2270b3a157ecf9fd895fb03724356b8d3b06e45c89aa
98bdc9cc355cc9e4152e174fd8b00efa8f669ebf634c51b34903e1237ca0e0cc
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b
aa1a9469a931811b14292bbac704c26d81d0f1d683ebd2424421e69416da11f4
b483c27381671c52377f3ae33218233ce6b57b41f52aed2d8aa6d51f68e689f4
b90ef04e3e2e1f1dd7ba9788fcc9062e4e5f1a9ffa1ce681c94b43322085e4f9
b917b213d53e75c7e60409a9cd8e3ffbac1333c6b78e0f5b3eab2f3f73d8bdc9
be06cee347498997d696c3d72c972214543f4108d6283ae93727058c856bb221
bedd71ecb31ba0b2545539485511b642632948ad31be8531d6a1d035a895d844
bf68f00a577afe536af23e43b534f70423e05e87b8c86ceb40598bd2e8e8d2ae
bf87e7665143225348654d6d1257d53d12519b61eb21000b16d250cae9a7cefa
c0fde4c54bc7c9353077d30e49f12a9a6f00ac2f2e6349bf1ebaa9503d04b87b
c9f5ae756b9fdb22232a4ba9d3247679de32b076216f3f8f3ccb07fbbfd5230d
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda
cfd2d78ecbf22c168ce6b2f16d92b89871fe94774ae8d0887efe5b53cfe5dd0c
d47e743bdd4d151705fdeb456c2c7716b8377133f4aba7c5d2c50a9d2e222a9b
d7134bef9adeee56f30da5218038e7cd0f4b61ab5b1e58e181aeae865c901f7b
d845f0721a3e6e23651528e2a11e299ba11e7a4e24f1f1973a15122591faece4
d8d504201a2904d50eabdbd7756b3f5d156fc495e1c33bdceac3630c15d867c9
d9762711535423a38818e336a1524b4a2fdbb068719d7d9a3c9502cc0f6e98e2
dfb9498e99df31c91fcb37341a78fdc0e68740fcfc339516d80561683c9e89e4
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e471fd145da309e6e884c956eb82679809665c8f1021946dd6d26ad6b0d262b9
e53958ea7556d07c3cd32670c97089812713eabfee1128191c9730b500b53864
e5b535dcfb69c478d01f0e7e15095c528d81485bae982e1edae7fcabea4ff0ba
ebd76f7826c067b170d3343e159525bbe025417c365b41beaf89aca968c21d8c
edcf05c7590c2b9e52cd67e20b05fc5d551a9adb6b6daa4aa6bfdfd7ea8201a5
f0522d64002ba12c577c1f41da46c2afa219321466f1132145cae24b2df2ce5d
f3cf86046748fe91cf89243476126804cb5b502d7d00589865e3915771c41298
f862ae15a3fd0c9302808056f8be71cfd059e29de03a3c38056b543f6496f17d
fd2540878932693617525353f32b31cd6e01e5687d0c940cf46640199a6aa473
fec3fab0f5df6ed70f28d3d2f9797cca551ff19bc55dd4d538b0f7cc50506258
fef5572c908a49ce88bbc45d6e4267a9b340ce64369d9108129fc0aa96034a90
fefc31fe8b6a75aa50147bc062e2ed750e20c8d78fb24a02342c17f15f2f261a