URL: http://xbooks.to/
Submission: On March 01 via manual

Summary

This website contacted 20 IPs in 4 countries across 13 domains to perform 119 HTTP transactions. The main IP is 37.187.226.152, located in Gif-sur-yvette, France and belongs to OVH, FR. The main domain is xbooks.to.
This is the only time xbooks.to was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
12 37.187.226.152 16276 (OVH)
1 2a00:1450:400... 15169 (GOOGLE)
17 37.187.226.151 16276 (OVH)
1 2a00:1450:401... 15169 (GOOGLE)
1 209.197.3.15 20446 (HIGHWINDS3)
1 2606:4700::68... 13335 (CLOUDFLAR...)
52 2606:4700:30:... 13335 (CLOUDFLAR...)
8 2606:4700:30:... 13335 (CLOUDFLAR...)
5 198.134.112.243 27257 (WEBAIR-IN...)
2 2606:4700::68... 13335 (CLOUDFLAR...)
4 88.208.59.100 39572 (ADVANCEDH...)
4 2a00:1450:400... 15169 (GOOGLE)
2 31.220.24.145 39572 (ADVANCEDH...)
3 88.85.94.234 35415 (WEBZILLA)
2 198.134.112.241 27257 (WEBAIR-IN...)
1 2606:4700::68... 13335 (CLOUDFLAR...)
1 38.91.109.230 30212 (HYPERMEDI...)
1 2606:2800:234... 15133 (EDGECAST)
1 95.211.229.246 60781 (LEASEWEB-...)
119 20
Domain Requested by
29 xbooks.to xbooks.to
www.google-analytics.com
27 t01.xbooks.to xbooks.to
23 t02.xbooks.to xbooks.to
10 gum.xbooks.to xbooks.to
7 6ped2nd3yp.com xbooks.to
gum.xbooks.to
4 www.google-analytics.com www.googletagmanager.com
xbooks.to
4 ca.clcknads.pro xbooks.to
gum.xbooks.to
ca.clcknads.pro
3 aphookkensidah.pro xbooks.to
2 spot-01.trackingpro.pro gum.xbooks.to
2 cdn.tsyndicate.com xbooks.to
gum.xbooks.to
1 syndication.exosrv.com ads.exosrv.com
1 ads.exosrv.com gum.xbooks.to
1 www.ppc-direct.com xbooks.to
1 tsyndicate.com cdn.tsyndicate.com
1 cdnjs.cloudflare.com xbooks.to
1 netdna.bootstrapcdn.com xbooks.to
1 ajax.googleapis.com xbooks.to
1 www.googletagmanager.com xbooks.to
119 18
Subject Issuer Validity Valid
*.google-analytics.com
Google Internet Authority G3
2019-02-13 -
2019-05-08
3 months crt.sh
ssl412106.cloudflaressl.com
COMODO ECC Domain Validation Secure Server CA 2
2018-09-22 -
2019-03-31
6 months crt.sh
ppc-direct.com
Go Daddy Secure Certificate Authority - G2
2018-01-03 -
2021-02-20
3 years crt.sh
*.exoclick.com
DigiCert SHA2 Secure Server CA
2017-12-12 -
2020-12-16
3 years crt.sh
ca.clcknads.pro
Let's Encrypt Authority X3
2019-02-13 -
2019-05-14
3 months crt.sh

This page contains 9 frames:

Primary Page: http://xbooks.to/
Frame ID: B96C51EC70F4AA7D06B629FE117D3F4B
Requests: 112 HTTP requests in this frame

Frame: http://spot-01.trackingpro.pro/5afeba38494be419e67c39a6?params[cv1]={publisher_ID}&params[cv2]={xuid}
Frame ID: ABAFEEF39B6A7E3F0146AC7B59064D02
Requests: 1 HTTP requests in this frame

Frame: http://tsyndicate.com/iframes2/fd1cf51ad24d4f4b9c40e6b99be6a1eb.html?keywords=BOOKS,BOOKS&adb=0&w=1600&h=1200
Frame ID: DA165E6D490BBCFC25766BE966268980
Requests: 1 HTTP requests in this frame

Frame: http://ca.clcknads.pro/v2/a/ban/iframe/37758
Frame ID: D5C81375171F228245EDD90C7EDB6CD7
Requests: 1 HTTP requests in this frame

Frame: http://ca.clcknads.pro/v2/a/ban/iframe/37757
Frame ID: 91633B90CED7D20FF8ED4913BBCB4821
Requests: 1 HTTP requests in this frame

Frame: https://www.ppc-direct.com/index105.html?affid=202167
Frame ID: A284395E5C618435E248291507FB49AB
Requests: 1 HTTP requests in this frame

Frame: http://spot-01.trackingpro.pro/5965461f56e4dd0a9e7b94c1?params[cv1]={publisher_ID}&params[cv2]={xuid}
Frame ID: FDA2E05194CFF68DB141C57E06DB38B1
Requests: 1 HTTP requests in this frame

Frame: http://aphookkensidah.pro/aWW.ZoytPM1-9m1WcRm/wa9TJoT/JgGhYuSi5/XpJfT/JHGlWbiGUJyNR/nvlNPqUBV/krynekDKlbaqaE1FBWaYJITzJvGkVPHvIa5ReYjaZY1/Ypmlc/yCRaTrVyIxbJH/h/T/WwVadb4yUpXdkq5/alkk5KkyRGEahWBwebHAdDD/T/0m9ZUbZtEdlvEiM/VHZsPrY/0rNs0lWrkuVN3/azGpQvlEM/kVZBYvS/k_5Gawbd1SFRXHRiG/0plYMQkCYK5/RhXbVK4wW/iqUQyuRblsVOHOb/CFUfyMRnmotWCHUXCdUbyMRClkRoujUrSfUmy/RinWdGObTuXRF/ENeRmUtQZCetWHJcOgJLTuJ/GCVhEQhQnlcvC/UKzMR/GMw/mcewmW9EuKZkUhl/kQPRTaQfwcMyDkknyQNYTWgZmTcRHuVjzyaNFFpXvYbxm/V/JWZjDU0V0oMbDiA/5/MQjSUS4m
Frame ID: 5895F72B1684EC4A566C629B8897755E
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exosrv.com/ads-iframe-display.php?idzone=3308906&type=300x250&p=http%3A//xbooks.to/&dt=1551469127509&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 34BBAB0F3F10A8B194E70D714A2D715F
Requests: 1 HTTP requests in this frame

Screenshot


Detected technologies

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

Overall confidence: 100%
Detected patterns
  • headers server /(?:Apache(?:$|\/([\d.]+)|[^\/-])|(?:^|)HTTPD)/i

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

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

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

Overall confidence: 100%
Detected patterns
  • script /\/([\d.]+)\/jquery(?:\.min)?\.js/i
  • script /jquery.*\.js/i
  • env /^jQuery$/i

Page Statistics

119
Requests

8 %
HTTPS

47 %
IPv6

13
Domains

18
Subdomains

20
IPs

4
Countries

2965 kB
Transfer

3520 kB
Size

22
Cookies

Redirected requests

There were HTTP redirect chains for the following requests:

Request Chain 8
  • http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js HTTP 307
  • https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js

119 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request Cookie set /
xbooks.to/
106 KB
106 KB
Document
General
Full URL
http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) / PHP/5.6.30
Resource Hash
bfedc0083046f0db824b8ff1bb0f402fafe3bfac67516ca6b6c329bf526f05c8

Request headers

Host
xbooks.to
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
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
Fri, 01 Mar 2019 19:38:46 GMT
Server
Apache/2.2.15 (CentOS)
X-Powered-By
PHP/5.6.30
Set-Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; expires=Tue, 30-Apr-2069 15:17:32 GMT; Max-Age=1583091526; path=/
Content-Length
108232
Connection
close
Content-Type
text/html; charset=UTF-8
js
www.googletagmanager.com/gtag/
61 KB
23 KB
Script
General
Full URL
https://www.googletagmanager.com/gtag/js?id=UA-125317163-1
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:808::2008 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Google Tag Manager (scaffolding) /
Resource Hash
d86a4fc5c4cefad3e7afca85cc803fa3fa3f844217ae62a6cfd70733c3b1ccde
Security Headers
Name Value
X-Xss-Protection 1; mode=block

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
content-encoding
br
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
server
Google Tag Manager (scaffolding)
access-control-allow-origin
http://www.googletagmanager.com
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
status
200
cache-control
private, max-age=900
access-control-allow-credentials
true
access-control-allow-headers
Cache-Control
content-length
23695
x-xss-protection
1; mode=block
expires
Fri, 01 Mar 2019 19:38:46 GMT
styles.css
xbooks.to/css/pc/
181 B
435 B
Stylesheet
General
Full URL
http://xbooks.to/css/pc/styles.css?01
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
8d4a13e272445acbbe8009f4c8101dd9f1ec07a251a417fb6147be0a5baa0db2

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a122383-b5-5712950845180"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
181
jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/1.8.2/
91 KB
33 KB
Script
General
Full URL
http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2a00:1450:4016:80c::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
f554d2f09272c6f71447ebfe4532d3b1dd1959bce669f9a5ccc99e64ef511729
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Referer
http://xbooks.to/
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
Fri, 25 Jan 2019 15:45:39 GMT
Content-Encoding
gzip
X-Content-Type-Options
nosniff
Last-Modified
Tue, 20 Dec 2016 18:17:03 GMT
Server
sffe
Age
3037987
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
*
Content-Length
33621
X-XSS-Protection
1; mode=block
Expires
Sat, 25 Jan 2020 15:45:39 GMT
jquery.page-scroller.js
xbooks.to/js/pc/
5 KB
5 KB
Script
General
Full URL
http://xbooks.to/js/pc/jquery.page-scroller.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
bd7fd1234e66fa11ee3952e9d30cca0860cbf11724684eb86d2ae6bb87c62a40

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:50 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"4e68008-1421-548f1c603a880"
Content-Type
text/javascript
Connection
close
Accept-Ranges
bytes
Content-Length
5153
jquery.lazyload.min.js
xbooks.to/js/pc/
3 KB
4 KB
Script
General
Full URL
http://xbooks.to/js/pc/jquery.lazyload.min.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
e576f12e82c468567e420386b68476ff7045815976395bc6baad1a822c7368a7

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:50 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"4e68006-d35-548f1c603a880"
Content-Type
text/javascript
Connection
close
Accept-Ranges
bytes
Content-Length
3381
scrolltopcontrol.js
xbooks.to/js/pc/
4 KB
4 KB
Script
General
Full URL
http://xbooks.to/js/pc/scrolltopcontrol.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
720a7d605dc7ba416e650793bbd9fd3f003f84acae8c07210a1bd114b6149d7f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:50 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"4e68009-eb4-548f1c603a880"
Content-Type
text/javascript
Connection
close
Accept-Ranges
bytes
Content-Length
3764
searchhis.js
xbooks.to/js/pc/
4 KB
5 KB
Script
General
Full URL
http://xbooks.to/js/pc/searchhis.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
05b7b8ec26301050b314a7e9ee18aff3039a9ce5052adc64d3d689e755a65203

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a124098-11bd-5712950845180"
Content-Type
text/javascript
Connection
close
Accept-Ranges
bytes
Content-Length
4541
font-awesome.css
netdna.bootstrapcdn.com/font-awesome/4.0.3/css/
21 KB
5 KB
Stylesheet
General
Full URL
http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
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
3083e8d3b21ddc3f0e6d65ec3580aa6edfaadca5d9737d9caa27e6a233e1ccf3

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
Last-Modified
Wed, 12 Dec 2018 18:35:19 GMT
X-Hello-Human
Say hello back! @getBootstrapCDN on Twitter
ETag
"1544639719"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
text/css; charset=utf-8
Access-Control-Allow-Origin
*
cache-control
public, max-age=31536000
Connection
Keep-Alive
Accept-Ranges
bytes
timing-allow-origin
*
Content-Length
4292
jquery.cookie.min.js
cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/
Redirect Chain
  • http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js
  • https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js
1 KB
765 B
Script
General
Full URL
https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700::6813:c497 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d40efcac911d8964f3728eaa767de281306ff55ba9377435a3364d4d1e1613f6
Security Headers
Name Value
Strict-Transport-Security max-age=15780000; includeSubDomains

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
content-encoding
br
cf-cache-status
HIT
status
200
strict-transport-security
max-age=15780000; includeSubDomains
last-modified
Thu, 17 May 2018 09:20:58 GMT
server
cloudflare
etag
W/"5afd497a-514"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary
Accept-Encoding
content-type
application/javascript
access-control-allow-origin
*
expires
Wed, 19 Feb 2020 19:38:46 GMT
cache-control
public, max-age=30672000
cf-ray
4b0d97d82fedc2c9-FRA
served-in-seconds
0.000

Redirect headers

Location
https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js
Non-Authoritative-Reason
HSTS
logo.png
xbooks.to/img/pc/header/
5 KB
5 KB
Image
General
Full URL
http://xbooks.to/img/pc/header/logo.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
489918f1499f26598de6403df75b140560f56bc296d48802d761fa2484d800b9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"518a00f-1243-5712950845180"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
4675
hentaiheroes_270x100.png
gum.xbooks.to/img/pc/
15 KB
15 KB
Image
General
Full URL
http://gum.xbooks.to/img/pc/hentaiheroes_270x100.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
cb5b33fde7f5649b538bdd4b9dd23ad23599e88a2e9e16045d1b495ee6c46efd

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
REVALIDATED
Last-Modified
Wed, 27 Feb 2019 01:31:32 GMT
Server
cloudflare
ETag
"5732027-3b08-582d622340500"
Vary
Accept-Encoding
Content-Type
image/png
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d95a6e2342-FRA
Content-Length
15112
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Cookie set pc_main_900_250.js
gum.xbooks.to/js/pc/
5 KB
1 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_main_900_250.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
bf6a5549a14c3df9223029a258265726754ae05097d98e5cb2d9cd6348a99321

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Cf-Polished
origSize=12018
Transfer-Encoding
chunked
Connection
keep-alive
Last-Modified
Thu, 28 Feb 2019 09:07:45 GMT
Server
cloudflare
ETag
W/"5f4e00e-2ef2-582f09f9a3a40"
Vary
Accept-Encoding
Content-Type
text/javascript
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Cache-Control
public, max-age=14400
Set-Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126; expires=Sat, 29-Feb-20 19:38:46 GMT; path=/; domain=.xbooks.to; HttpOnly
CF-RAY
4b0d97d8fe3026ea-FRA
Cf-Bgj
minify
pc_ace_content_mb_none.js
gum.xbooks.to/js/pc/
43 KB
2 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_ace_content_mb_none.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
9b97cd3653bbaf83a9d42ae1e94c6445661d85aaf45e669fe83879b1ecd6b3dc

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 09:07:41 GMT
Server
cloudflare
ETag
W/"5f4e005-ada8-582f09f5d3140"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d90e4726ea-FRA
Cf-Polished
origSize=44456
Expires
Fri, 01 Mar 2019 23:38:46 GMT
pc_center_01.js
gum.xbooks.to/js/pc/
12 KB
2 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_center_01.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
d07759e4ef917747a355ff94ecc72d9f82cca8897f6c8bdfb0ddcc4a83c7de88

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 03:14:27 GMT
Server
cloudflare
ETag
W/"5f4e006-3374-582ffcdf1cac0"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d91e5b26ea-FRA
Cf-Polished
origSize=13172
Expires
Fri, 01 Mar 2019 23:38:46 GMT
pc_center_02.js
gum.xbooks.to/js/pc/
12 KB
2 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_center_02.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ba0c6994880fc9407b7bba848afc7c89d81abbd20ce4f6914b43765c53fd0621

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 03:14:25 GMT
Server
cloudflare
ETag
W/"5f4e007-32c3-582ffcdd34640"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d91a0c2342-FRA
Cf-Polished
origSize=12995
Expires
Fri, 01 Mar 2019 23:38:46 GMT
pc_content_top_tt.js
gum.xbooks.to/js/pc/
112 KB
3 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_content_top_tt.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
47cc88e7204b762bf236fcf581091d16a5f42826a835493d6aee8f36faae6a0a

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 07:25:44 GMT
Server
cloudflare
ETag
W/"5f4e01c-1c164-58303509a8e00"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d93a4b2342-FRA
Cf-Polished
origSize=115044
Expires
Fri, 01 Mar 2019 23:38:46 GMT
book_plus.png
xbooks.to/img/pc/thumb/
348 B
604 B
Image
General
Full URL
http://xbooks.to/img/pc/thumb/book_plus.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
ec7397b98108a5055b84c1c00a28af12080332fbb2d3ca13b5bc8938c5397fcf

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:50 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a12270c-15c-548f1c603a880"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
348
4CQ6ejtfvs.jpg
t01.xbooks.to/thumb1/
55 KB
55 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/4CQ6ejtfvs.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
37426c96f4aae7a3389dc8e2a2749720381d821f9e1dff87a918d91db0e529b5

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 15:04:27 GMT
Server
cloudflare
ETag
"5c7949fb-dbe1"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d98fb9c2a6-FRA
Content-Length
56289
Expires
Fri, 01 Mar 2019 23:38:46 GMT
LUpXQV6Dj3.jpg
t01.xbooks.to/thumb2/
22 KB
22 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/LUpXQV6Dj3.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
68cb97a8452ff3f1402ec4083477bacc5408a2d2f90ec2d5ffe14170e08fb981

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 15:00:28 GMT
Server
cloudflare
ETag
"5c79490c-582e"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d98ed2c26f-FRA
Content-Length
22574
Expires
Fri, 01 Mar 2019 23:38:46 GMT
xw1xbBC3Rd.jpg
t02.xbooks.to/thumb3/
23 KB
23 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/xw1xbBC3Rd.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
413367b1770c77f41002a0ec6a208efbacdd25bdb4fc5bd96a05a13c28b7c91a

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 14:52:37 GMT
Server
cloudflare
ETag
"5c794735-5be9"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da08e7c2ba-FRA
Content-Length
23529
Expires
Fri, 01 Mar 2019 23:38:46 GMT
AiFmjLiZ5T.jpg
t01.xbooks.to/thumb1/
28 KB
28 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/AiFmjLiZ5T.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
938d0c303951a4e38d21d9074f4964135a813c12f45a1b12312e214a7a4fc72c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 14:56:27 GMT
Server
cloudflare
ETag
"5c79481b-6f67"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d989a9235a-FRA
Content-Length
28519
Expires
Fri, 01 Mar 2019 23:38:46 GMT
KkLstuG3Qc.jpg
t02.xbooks.to/thumb4/
46 KB
47 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/KkLstuG3Qc.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
66de87a068a33f303caf18e2ca710bc05aaa37ff18c726a74a9e11930ee6818b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 14:47:27 GMT
Server
cloudflare
ETag
"5c7945ff-b965"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0de5c2ab-FRA
Content-Length
47461
Expires
Fri, 01 Mar 2019 23:38:46 GMT
l87odjBfem.jpg
t01.xbooks.to/thumb2/
33 KB
34 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/l87odjBfem.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a0f9b2bf3a7a2002038a212a0284f5f6389d91f8aaaf0f605a42bbe566450c5b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 14:14:27 GMT
Server
cloudflare
ETag
"5c793e43-84b0"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9af73c26f-FRA
Content-Length
33968
Expires
Fri, 01 Mar 2019 23:38:46 GMT
yvOd9JJJmr.jpg
t02.xbooks.to/thumb3/
59 KB
59 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/yvOd9JJJmr.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
672bf0a504576d9b5bf5ed0fc812a15ca077c54f2195e79564fb02192c31f822

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 11:42:10 GMT
Server
cloudflare
ETag
"5c791a92-eb9a"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0955c26f-FRA
Content-Length
60314
Expires
Fri, 01 Mar 2019 23:38:46 GMT
e7tRu4rhp1.jpg
t02.xbooks.to/thumb4/
50 KB
51 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/e7tRu4rhp1.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
30f4a5e65aeb50630bbe024072989bca2a555aba420f480a824ba9c4e557226f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 09:53:35 GMT
Server
cloudflare
ETag
"5c79011f-c9c4"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0bf12348-FRA
Content-Length
51652
Expires
Fri, 01 Mar 2019 23:38:46 GMT
I9Oo3PGRrg.jpg
t02.xbooks.to/thumb4/
36 KB
36 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/I9Oo3PGRrg.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
cbec9e748be166856220597b6d20bac568bb414ad3f026fbef17d59e903de0c4

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 08:20:29 GMT
Server
cloudflare
ETag
"5c78eb4d-8fdc"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0df0c2ab-FRA
Content-Length
36828
Expires
Fri, 01 Mar 2019 23:38:46 GMT
dfQ5CcJT9Q.jpg
t02.xbooks.to/thumb3/
62 KB
63 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/dfQ5CcJT9Q.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5c645cc5ab6a585a2c8ff3eaacd04d6669226d7282996d4b5169b6b448faad0b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 08:01:18 GMT
Server
cloudflare
ETag
"5c78e6ce-f981"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0bbe236c-FRA
Content-Length
63873
Expires
Fri, 01 Mar 2019 23:38:46 GMT
GtKYEhvDlp.jpg
t01.xbooks.to/thumb2/
39 KB
40 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/GtKYEhvDlp.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
164f5f67b95e687b3d6f4d5ad4ce3c32166344b90e3849723e013bda44712799

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 07:12:50 GMT
Server
cloudflare
ETag
"5c78db72-9cff"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9b8acc2a6-FRA
Content-Length
40191
Expires
Fri, 01 Mar 2019 23:38:46 GMT
GEPMM4g5dg.jpg
t02.xbooks.to/thumb3/
68 KB
69 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/GEPMM4g5dg.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
67dec4023b505a760dcb0ee07ffeb642d1f108cacb3b251fce74cc6dbbf2c36f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 06:37:28 GMT
Server
cloudflare
ETag
"5c78d328-11198"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da2968c2ba-FRA
Content-Length
70040
Expires
Fri, 01 Mar 2019 23:38:46 GMT
f0Hr43l4sw.jpg
t01.xbooks.to/thumb2/
67 KB
67 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/f0Hr43l4sw.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
1db7b2af45577e524fa22b4cbfe7d68e1313cafa830aaecfdcc80c1c06598e76

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 06:30:34 GMT
Server
cloudflare
ETag
"5c78d18a-10afb"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9bfc5c26f-FRA
Content-Length
68347
Expires
Fri, 01 Mar 2019 23:38:46 GMT
wDrar0dzQl.jpg
t01.xbooks.to/thumb2/
48 KB
49 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/wDrar0dzQl.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
fc5384034fe5e9ab765e8bdeccd0ab68f9e9beb4f59d4946f8bb39dfb09754be

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 05:00:43 GMT
Server
cloudflare
ETag
"5c78bc7b-c1fa"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9d81bc26f-FRA
Content-Length
49658
Expires
Fri, 01 Mar 2019 23:38:46 GMT
eOTrYaVA6m.jpg
t01.xbooks.to/thumb1/
50 KB
51 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/eOTrYaVA6m.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ea878d16501e3410344eb59057cb709406845b6f71b01c7ffd6ee155ebd0d92d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 01:55:28 GMT
Server
cloudflare
ETag
"5c789110-c8a1"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9e9f6c2a6-FRA
Content-Length
51361
Expires
Fri, 01 Mar 2019 23:38:46 GMT
zJt1TIapOs.jpg
t02.xbooks.to/thumb3/
56 KB
56 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/zJt1TIapOs.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a7bda0b45e8d59cb74a0a1c410b5917cf3c2243be0ba55c0439c1247f5116e7b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 19:29:28 GMT
Server
cloudflare
ETag
"5c783698-df35"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da29bcc26f-FRA
Content-Length
57141
Expires
Fri, 01 Mar 2019 23:38:46 GMT
h5dZit6MhQ.jpg
t01.xbooks.to/thumb1/
56 KB
56 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/h5dZit6MhQ.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
55dc9a8f1f095606aeea72fe48acb3dc240a6d34f74aa55c60985c8b5ebe40aa

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 19:29:13 GMT
Server
cloudflare
ETag
"5c783689-df57"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9e9de235a-FRA
Content-Length
57175
Expires
Fri, 01 Mar 2019 23:38:46 GMT
YBnmF7zITT.jpg
t01.xbooks.to/thumb1/
57 KB
57 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/YBnmF7zITT.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
299a2c09adbea7257cf096bce952d4f6837aa3f2a9b21e2cecbc13c96f7d7bae

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 19:30:27 GMT
Server
cloudflare
ETag
"5c7836d3-e396"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9f8fbc26f-FRA
Content-Length
58262
Expires
Fri, 01 Mar 2019 23:38:46 GMT
lYJKrPFOKD.jpg
t02.xbooks.to/thumb4/
57 KB
57 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/lYJKrPFOKD.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f5538f6fdae85711e6eac2fd391e6d94a078007725e1027f0e5152a46eb3a7c3

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 19:16:27 GMT
Server
cloudflare
ETag
"5c78338b-e2a1"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da2c082348-FRA
Content-Length
58017
Expires
Fri, 01 Mar 2019 23:38:46 GMT
8fOZS0ADiR.jpg
t01.xbooks.to/thumb2/
38 KB
38 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/8fOZS0ADiR.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
2d44ea58f80ca1b0d76ebcf0f96587d7560c3e777f54c28884d0b3d2bae4956e

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 15:51:26 GMT
Server
cloudflare
ETag
"5c78037e-9607"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9f9f1235a-FRA
Content-Length
38407
Expires
Fri, 01 Mar 2019 23:38:46 GMT
TgqvUSwluY.jpg
t02.xbooks.to/thumb3/
28 KB
29 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/TgqvUSwluY.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
31d6eb4d663d45a96c55c535fdfe5c15f83f4e571cd94e12e7623cb3b64ef064

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 11:13:05 GMT
Server
cloudflare
ETag
"5c77c241-71de"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da4f4ec2ab-FRA
Content-Length
29150
Expires
Fri, 01 Mar 2019 23:38:46 GMT
pVEpJNXy8i.jpg
t02.xbooks.to/thumb4/
55 KB
55 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/pVEpJNXy8i.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
719c7de57201b33e8fac50c2adb55f062fea5d90fbb29210283ff74add59ea3d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 05:45:27 GMT
Server
cloudflare
ETag
"5c777577-dae9"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da4bea236c-FRA
Content-Length
56041
Expires
Fri, 01 Mar 2019 23:38:46 GMT
AxCcVlAkRt.jpg
t02.xbooks.to/thumb3/
64 KB
65 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/AxCcVlAkRt.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4952c727cad71809ff6352d81638e6dfa803afe44adfd9dd188ee9b7a03c4948

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 00:08:27 GMT
Server
cloudflare
ETag
"5c77267b-1017a"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da5a42c2ba-FRA
Content-Length
65914
Expires
Fri, 01 Mar 2019 23:38:46 GMT
HmQxoOMtvr.jpg
t02.xbooks.to/thumb3/
62 KB
62 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/HmQxoOMtvr.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
399a9ebc6da98863c170731b9d5a34e8691bff83642aa9c9646654b7b3b11ab7

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 23:54:38 GMT
Server
cloudflare
ETag
"5c77233e-f6c5"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da5c2b2348-FRA
Content-Length
63173
Expires
Fri, 01 Mar 2019 23:38:46 GMT
WLWkfJ4tKj.jpg
t02.xbooks.to/thumb4/
52 KB
52 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/WLWkfJ4tKj.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e91b88e6c243fd32daeb4e0a12806f8a118d9dd2c3ded8f272b14ab58b7b7284

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 23:48:27 GMT
Server
cloudflare
ETag
"5c7721cb-cfc2"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da5aa6c26f-FRA
Content-Length
53186
Expires
Fri, 01 Mar 2019 23:38:46 GMT
AkHCwzmpSi.jpg
t01.xbooks.to/thumb1/
28 KB
29 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/AkHCwzmpSi.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
2c4a86c01c324639563bc78158de21ec2799f813fb1a0aa66368be37c55e3a89

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 23:37:43 GMT
Server
cloudflare
ETag
"5c771f47-7110"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97d9fa75c2a6-FRA
Content-Length
28944
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Cf0L5xML9Q.jpg
t02.xbooks.to/thumb3/
60 KB
61 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/Cf0L5xML9Q.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
afefee3ab589752ef3c4d7321b9936c70d43e46a62da78571e1a9a166ec6d968

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 23:28:26 GMT
Server
cloudflare
ETag
"5c771d1a-f16b"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da5f87c2ab-FRA
Content-Length
61803
Expires
Fri, 01 Mar 2019 23:38:46 GMT
HkbCgBvoIN.jpg
t01.xbooks.to/thumb2/
37 KB
37 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/HkbCgBvoIN.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6f0a5110420839e5f328bbc2ba70c35955fa82b8f75d48592d2b62f1eed9cba9

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 23:01:27 GMT
Server
cloudflare
ETag
"5c7716c7-9251"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da09fb235a-FRA
Content-Length
37457
Expires
Fri, 01 Mar 2019 23:38:46 GMT
qaslhdJpFQ.jpg
t02.xbooks.to/thumb3/
33 KB
34 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/qaslhdJpFQ.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7bc202fcfd4bd0f99aff8593d6e05e57c3030d3cb82cc621fe9ebcff5c5e8791

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 22:59:25 GMT
Server
cloudflare
ETag
"5c77164d-84fb"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da5fa1c2ab-FRA
Content-Length
34043
Expires
Fri, 01 Mar 2019 23:38:46 GMT
nX2GpXOptn.jpg
t01.xbooks.to/thumb1/
34 KB
34 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/nX2GpXOptn.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5b5939c28eb9f275dc523de30737c8aae5e2ac151f66bc2ff7e57bbe321c5203

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 16:00:06 GMT
Server
cloudflare
ETag
"5c76b406-862f"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0961c26f-FRA
Content-Length
34351
Expires
Fri, 01 Mar 2019 23:38:46 GMT
WR95TQE4eR.jpg
t01.xbooks.to/thumb1/
23 KB
23 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/WR95TQE4eR.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
1e0c471b212fb97aa81af17ef07b932c029fec4220b106bc0e26040cbab5012f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 15:38:15 GMT
Server
cloudflare
ETag
"5c76aee7-5b06"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da1b4fc2a6-FRA
Content-Length
23302
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Zizg7z1JWv.jpg
t01.xbooks.to/thumb1/
7 KB
8 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/Zizg7z1JWv.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
0de23d7286c98bdd54700e84cf378520148f6c7a0b18ceca1875aa2c50dc45dd

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 15:14:26 GMT
Server
cloudflare
ETag
"5c76a952-1d6c"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da2a09235a-FRA
Content-Length
7532
Expires
Fri, 01 Mar 2019 23:38:46 GMT
P5eV09EKhv.jpg
t02.xbooks.to/thumb3/
41 KB
41 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/P5eV09EKhv.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
96e71bf8db74b210ef00082f759e17b06b0fad9cc2b731096046d676be708466

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 15:03:26 GMT
Server
cloudflare
ETag
"5c76a6be-a3a3"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da6aabc2ba-FRA
Content-Length
41891
Expires
Fri, 01 Mar 2019 23:38:46 GMT
M9ega2YEkc.jpg
t02.xbooks.to/thumb3/
64 KB
65 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/M9ega2YEkc.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4952c727cad71809ff6352d81638e6dfa803afe44adfd9dd188ee9b7a03c4948

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 13:59:27 GMT
Server
cloudflare
ETag
"5c7697bf-1017a"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da8b80c26f-FRA
Content-Length
65914
Expires
Fri, 01 Mar 2019 23:38:46 GMT
vWbUC6X4wg.jpg
t02.xbooks.to/thumb3/
57 KB
58 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/vWbUC6X4wg.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
067c5e66b330dcada30971538c037856b508e87290c303382ec750fcc0f17131

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 11:48:06 GMT
Server
cloudflare
ETag
"5c7678f6-e5d5"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da98dac2ab-FRA
Content-Length
58837
Expires
Fri, 01 Mar 2019 23:38:46 GMT
IluIsF0YbZ.jpg
t02.xbooks.to/thumb3/
43 KB
43 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/IluIsF0YbZ.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
cb30f0d74d7767b99b2095b2d587c95d524dc3e6f4d9b3320788941eb4bd6810

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 10:27:26 GMT
Server
cloudflare
ETag
"5c76660e-aadd"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da9c1b236c-FRA
Content-Length
43741
Expires
Fri, 01 Mar 2019 23:38:46 GMT
UdDoRySfVz.jpg
t02.xbooks.to/thumb4/
45 KB
46 KB
Image
General
Full URL
http://t02.xbooks.to/thumb4/UdDoRySfVz.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
28078aa3979bea52bcbefd7061c28abf0a56896bff3e284d368e6ee7be8b63fa

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 10:25:16 GMT
Server
cloudflare
ETag
"5c76658c-b4f8"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da98dec2ab-FRA
Content-Length
46328
Expires
Fri, 01 Mar 2019 23:38:46 GMT
FPa6aQPpG9.jpg
t01.xbooks.to/thumb1/
63 KB
64 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/FPa6aQPpG9.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
17d5ec3d7a561658da2320876ef2358c522e0cd2b7c4e97bcab6384958dc7a8e

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 10:07:26 GMT
Server
cloudflare
ETag
"5c76615e-fd6d"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da29b6c26f-FRA
Content-Length
64877
Expires
Fri, 01 Mar 2019 23:38:46 GMT
twuy1oHTXv.jpg
t01.xbooks.to/thumb2/
52 KB
52 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/twuy1oHTXv.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e91b88e6c243fd32daeb4e0a12806f8a118d9dd2c3ded8f272b14ab58b7b7284

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 09:34:55 GMT
Server
cloudflare
ETag
"5c7659bf-cfc2"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da2bd8c2a6-FRA
Content-Length
53186
Expires
Fri, 01 Mar 2019 23:38:46 GMT
UrrtiZEvQ0.jpg
t01.xbooks.to/thumb2/
70 KB
71 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/UrrtiZEvQ0.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
9e7404346d2147e684c0bf40c5ff1c78b5ffe06f6b900e63af0a8a9bef3dcc80

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 08:44:26 GMT
Server
cloudflare
ETag
"5c764dea-1197c"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da4a29235a-FRA
Content-Length
72060
Expires
Fri, 01 Mar 2019 23:38:46 GMT
8OBjd6tjUO.jpg
t01.xbooks.to/thumb1/
10 KB
11 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/8OBjd6tjUO.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
dad99c8f18ecfdf566195033e0f4285d1c59434666c20022cebe4c3979225a75

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 08:27:17 GMT
Server
cloudflare
ETag
"5c7649e5-297f"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da5cd5c2a6-FRA
Content-Length
10623
Expires
Fri, 01 Mar 2019 23:38:46 GMT
dqBPrZA27n.jpg
t01.xbooks.to/thumb1/
40 KB
40 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/dqBPrZA27n.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
22d296d7272fc052960a00d6ed9c6a20284da436e14e88ff91b12985a8728909

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 07:49:47 GMT
Server
cloudflare
ETag
"5c76411b-9e77"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da6af6c26f-FRA
Content-Length
40567
Expires
Fri, 01 Mar 2019 23:38:46 GMT
eIVcxpFAKY.jpg
t01.xbooks.to/thumb1/
9 KB
10 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/eIVcxpFAKY.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
62c4ca756cef44887028911ea40d05e7f8c1d3982f6318e0f3fd3b54a8718870

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 04:35:23 GMT
Server
cloudflare
ETag
"5c76138b-2483"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da6a38235a-FRA
Content-Length
9347
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Bn1Uo4FLiI.jpg
t01.xbooks.to/thumb2/
29 KB
29 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/Bn1Uo4FLiI.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a9492483ccf2261106dccebed74aea2b48123fe42227a31f2f3e77594fce25eb

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 03:38:33 GMT
Server
cloudflare
ETag
"5c760639-7265"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da7a45235a-FRA
Content-Length
29285
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Kp8baqeOPe.jpg
t01.xbooks.to/thumb2/
46 KB
46 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/Kp8baqeOPe.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
9fac2740c1c4abeea2ae780b001fa1621a7a5f706ad4cd2f50e8546024511c90

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Tue, 26 Feb 2019 22:42:17 GMT
Server
cloudflare
ETag
"5c75c0c9-b756"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da9a7f235a-FRA
Content-Length
46934
Expires
Fri, 01 Mar 2019 23:38:46 GMT
WJCpdHZQyv.jpg
t01.xbooks.to/thumb2/
54 KB
54 KB
Image
General
Full URL
http://t01.xbooks.to/thumb2/WJCpdHZQyv.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
55e296452f659a81e470dabd7f86fa9d8282d190083207321be1766946655900

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Tue, 26 Feb 2019 22:36:05 GMT
Server
cloudflare
ETag
"5c75bf55-d830"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da9e49c2a6-FRA
Content-Length
55344
Expires
Fri, 01 Mar 2019 23:38:46 GMT
48DEl3FzQO.jpg
t01.xbooks.to/thumb1/
69 KB
70 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/48DEl3FzQO.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
c69d05b6eca88de11571df0a914a633cb0a24d76156f1aad663b0ee5df01d726

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Tue, 26 Feb 2019 16:05:10 GMT
Server
cloudflare
ETag
"5c7563b6-114d3"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da9bb9c26f-FRA
Content-Length
70867
Expires
Fri, 01 Mar 2019 23:38:46 GMT
Etizpjnoal.jpg
t01.xbooks.to/thumb1/
28 KB
29 KB
Image
General
Full URL
http://t01.xbooks.to/thumb1/Etizpjnoal.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5b4d8d092f89eedb0f8d0d2e994fa7c593a48a215256bc0bdf3e1eadf1e70136

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t01.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Tue, 26 Feb 2019 16:02:53 GMT
Server
cloudflare
ETag
"5c75632d-7130"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97dac982c27e-FRA
Content-Length
28976
Expires
Fri, 01 Mar 2019 23:38:46 GMT
toI7d3P4sq.jpg
t02.xbooks.to/thumb3/
64 KB
65 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/toI7d3P4sq.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
24f0de06d5b983fc4604315c907c9c64ac0d97813524f8c7b13e4d0b947206f3

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Tue, 26 Feb 2019 15:49:22 GMT
Server
cloudflare
ETag
"5c756002-10178"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da9b72c2ba-FRA
Content-Length
65912
Expires
Fri, 01 Mar 2019 23:38:46 GMT
jddyxy3nW6.jpg
t02.xbooks.to/thumb3/
57 KB
57 KB
Image
General
Full URL
http://t02.xbooks.to/thumb3/jddyxy3nW6.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:244e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
2ec4520735fa76a35d293893da0d494df65a97acec3d41ed0bb3e5ce83563c1f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
t02.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Tue, 26 Feb 2019 15:54:02 GMT
Server
cloudflare
ETag
"5c75611a-e26f"
Vary
Accept-Encoding
Content-Type
image/jpeg
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97daece52348-FRA
Content-Length
57967
Expires
Fri, 01 Mar 2019 23:38:46 GMT
pc_content_bottom_tt.js
gum.xbooks.to/js/pc/
29 KB
2 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_content_bottom_tt.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
200cb78bd51d031939d1d1e5de09bc1c16d06f2a4e4614152f3b9b87b0dd5a8b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 07:25:44 GMT
Server
cloudflare
ETag
W/"5f4e01b-756e-58303509a8e00"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d93e8026ea-FRA
Cf-Polished
origSize=30062
Expires
Fri, 01 Mar 2019 23:38:46 GMT
ban_comi14.png
xbooks.to/img/pc/sidebar/
181 KB
181 KB
Image
General
Full URL
http://xbooks.to/img/pc/sidebar/ban_comi14.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
461863b276e8d6f247a61e3be1fcee27daa96170093abcd0e4ffdb8a8daedc37

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Wed, 17 Oct 2018 07:09:42 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a1220e5-2d206-578675aaff980"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
184838
pc_tsuibi.js
gum.xbooks.to/js/pc/
1 KB
1 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_tsuibi.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
60938cde05ef31d7155cd7e64885ff59c0b4c7f5e8d6dd5041f434570573e0f1

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Thu, 28 Feb 2019 09:07:46 GMT
Server
cloudflare
ETag
W/"5f4e00f-182e-582f09fa97c80"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d94e9626ea-FRA
Cf-Polished
origSize=6190
Expires
Fri, 01 Mar 2019 23:38:46 GMT
pc_tsuibi2.js
gum.xbooks.to/js/pc/
22 KB
2 KB
Script
General
Full URL
http://gum.xbooks.to/js/pc/pc_tsuibi2.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
325c6ccd8aed4e434ee184135515d6066c08c4b983603d4a8b2f3e20600f7930

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 01 Mar 2019 03:14:26 GMT
Server
cloudflare
ETag
W/"5f4e010-73f9-582ffcde28880"
Vary
Accept-Encoding
Content-Type
text/javascript
Cf-Bgj
minify
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97d95bdfc283-FRA
Cf-Polished
origSize=29689
Expires
Fri, 01 Mar 2019 23:38:46 GMT
e0ff114ad99a87345d93bd326ef002e8.js
6ped2nd3yp.com/e0/ff/11/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/e0/ff/11/e0ff114ad99a87345d93bd326ef002e8.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
198.134.112.243 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:24 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
p.js
cdn.tsyndicate.com/sdk/v1/
21 KB
7 KB
Script
General
Full URL
http://cdn.tsyndicate.com/sdk/v1/p.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700::6811:326b , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a3d660f1dcd56cdf87886fdb3ef328ef90c711a01d39b6fb7de984e4fa699cdb

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Mon, 11 Feb 2019 09:39:57 GMT
Server
cloudflare
ETag
W/"5c6142ed-559d"
Vary
Accept-Encoding
Content-Type
application/javascript
Expires
Fri, 01 Mar 2019 20:38:46 GMT
Cache-Control
public, max-age=3600
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97db0ae0bf07-FRA
Cf-Polished
origSize=21917
Cf-Bgj
minify
40434
ca.clcknads.pro/v2/a/pop/js/
87 KB
37 KB
Script
General
Full URL
http://ca.clcknads.pro/v2/a/pop/js/40434
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
b4daaf37cfd16ba085523862be7e43f8f17fc520d861b0864886ccd5b5bf354d

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
jquery.validationEngine.js
xbooks.to/js/validation/
74 KB
74 KB
Script
General
Full URL
http://xbooks.to/js/validation/jquery.validationEngine.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
001c4df1d5d3dc43144133248f9910a5ce4ab6c2ba801b5abc3cc3b26ec13c8b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 03 Apr 2017 07:18:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"4e6c003-128aa-54c3df8984cc0"
Content-Type
text/javascript
Connection
close
Accept-Ranges
bytes
Content-Length
75946
jquery.validationEngine-ja.js
xbooks.to/js/validation/
9 KB
9 KB
Script
General
Full URL
http://xbooks.to/js/validation/jquery.validationEngine-ja.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
ac42357db498afb1c10c4d64b5591af867544e012e41560a96494c3dff6aedab

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 03 Apr 2017 07:18:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"4e6c002-2335-54c3df8984cc0"
Content-Type
text/javascript
Connection
close
Accept-Ranges
bytes
Content-Length
9013
validationEngine.jquery.css
xbooks.to/js/validation/
3 KB
4 KB
Stylesheet
General
Full URL
http://xbooks.to/js/validation/validationEngine.jquery.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
effe09dd5281b145be8f737abf50446191bb3664db920ab9a60a137b927317e1

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 03 Apr 2017 10:36:19 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"518c256-d61-54c40baca6ec0"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
3425
analytics.js
www.google-analytics.com/
43 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-125317163-1
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:816::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
Security Headers
Name Value
Strict-Transport-Security max-age=10886400; includeSubDomains; preload
X-Content-Type-Options nosniff

Request headers

Referer
http://xbooks.to/
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
Wed, 16 Jan 2019 20:01:45 GMT
server
Golfe2
age
4033
date
Fri, 01 Mar 2019 18:31:33 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"
content-length
17543
expires
Fri, 01 Mar 2019 20:31:33 GMT
common.css
xbooks.to/css/pc/
2 KB
2 KB
Stylesheet
General
Full URL
http://xbooks.to/css/pc/common.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
7169e7df07adc7c6f835e4f126e76a50f836ed420a46804bf843ce4cf37e1eb2

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"5188050-6d6-5712950845180"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
1750
word.css
xbooks.to/css/pc/
6 KB
6 KB
Stylesheet
General
Full URL
http://xbooks.to/css/pc/word.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
e967f13c18606dcdc1bef0bc41d7ffb3c63248c76ab091502f2128710d02a5ae

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 07:18:00 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"518803e-17e2-5712cbef85a00"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
6114
header.css
xbooks.to/css/pc/
7 KB
7 KB
Stylesheet
General
Full URL
http://xbooks.to/css/pc/header.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
a589d8980b33eb030f5c8b6b547a35d8f129ca5ca8b19d5caa49ef40b6959f7f

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"518803d-1bb9-5712950845180"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
7097
main.css
xbooks.to/css/pc/
42 KB
43 KB
Stylesheet
General
Full URL
http://xbooks.to/css/pc/main.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
f3967fa79777e2722d1212d97dff5ef8b0f628e4a1e24dab1a05d0e8c139aa8a

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 06:08:25 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a1222da-a993-5712bc61ee840"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
43411
sidebar.css
xbooks.to/css/pc/
6 KB
7 KB
Stylesheet
General
Full URL
http://xbooks.to/css/pc/sidebar.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
8bb1dc620417d1f899a157d9f2f9ca92c096502b1ef20fd040523996b8527cb2

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a122382-19cb-5712950845180"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
6603
footer.css
xbooks.to/css/pc/
2 KB
3 KB
Stylesheet
General
Full URL
http://xbooks.to/css/pc/footer.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
ef4cf1baeb0c0c181dbdbd0fba3136e4c39cdea0a2e9fba6f9ada58eb4d477c5

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"5188051-976-5712950845180"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
2422
fonts.css
xbooks.to/css/
2 KB
2 KB
Stylesheet
General
Full URL
http://xbooks.to/css/fonts.css
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
124b45ebc63b170ba082001f8d92823d14e86cce6460f9fdb7e7aa076c8b9a35

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"5188049-71a-5712950845180"
Content-Type
text/css
Connection
close
Accept-Ranges
bytes
Content-Length
1818
submitbtn.jpg
xbooks.to/css/pc/images/
664 B
921 B
Image
General
Full URL
http://xbooks.to/css/pc/images/submitbtn.jpg
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
bd46ff207842d9d11e062fea74935faebc3c33ad230788efaec2272020077502

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/main.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/main.css
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
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"720803e-298-548f1c612eac0"
Content-Type
image/jpeg
Connection
close
Accept-Ranges
bytes
Content-Length
664
fonts.woff2
xbooks.to/css/fonts/
2 KB
2 KB
Font
General
Full URL
http://xbooks.to/css/fonts/fonts.woff2?fe0blk
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
b2ca075e0c475fbfb782356121a67f27b6b213b65c6fb02d18a3091f31b51741

Request headers

Pragma
no-cache
Origin
http://xbooks.to
Accept-Encoding
gzip, deflate
Host
xbooks.to
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
*/*
Referer
http://xbooks.to/css/fonts.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
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://xbooks.to/css/fonts.css
Origin
http://xbooks.to

Response headers

Date
Fri, 01 Mar 2019 19:38:46 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"60005-7ac-5712950845180"
Content-Type
text/plain; charset=UTF-8
Connection
close
Accept-Ranges
bytes
Content-Length
1964
Cookie set 5afeba38494be419e67c39a6
spot-01.trackingpro.pro/ Frame ABAF
0
0
Document
General
Full URL
http://spot-01.trackingpro.pro/5afeba38494be419e67c39a6?params[cv1]={publisher_ID}&params[cv2]={xuid}
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_main_900_250.js
Protocol
HTTP/1.1
Server
31.220.24.145 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx/1.14.2 / Express
Resource Hash

Request headers

Host
spot-01.trackingpro.pro
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://xbooks.to/
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://xbooks.to/

Response headers

Server
nginx/1.14.2
Date
Fri, 01 Mar 2019 19:38:46 GMT
Content-Type
text/html; charset=utf-8
Content-Length
624
Connection
keep-alive
X-Powered-By
Express
Set-Cookie
5afeba38494be419e67c39a6=1; Max-Age=9999999.999; Path=/; Expires=Tue, 25 Jun 2019 13:25:26 GMT; HttpOnly uuid=rk21UqZPLE; Max-Age=9999999.999; Domain=.trackingpro.pro; Path=/; Expires=Tue, 25 Jun 2019 13:25:26 GMT; HttpOnly
ETag
W/"270-el82jymgJoWgOF7FL0E3xQ"
invoke.js
6ped2nd3yp.com/42383f42a5891444d3e9f09600adc2cf/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/42383f42a5891444d3e9f09600adc2cf/invoke.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_ace_content_mb_none.js
Protocol
HTTP/1.1
Server
198.134.112.243 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:24 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
hentai_icon.png
gum.xbooks.to/img/pc/
788 B
1 KB
Image
General
Full URL
http://gum.xbooks.to/img/pc/hentai_icon.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:254e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ee4f1cec39319dab5c283ecf3cc0b9e9a4951737a7584061f986408237526b70

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
gum.xbooks.to
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://xbooks.to/
Cookie
__cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
CF-Cache-Status
HIT
Last-Modified
Wed, 27 Feb 2019 02:04:52 GMT
Server
cloudflare
ETag
"5732028-314-582d699699900"
Vary
Accept-Encoding
Content-Type
image/png
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4b0d97da0825c283-FRA
Content-Length
788
Expires
Fri, 01 Mar 2019 23:38:46 GMT
THgp=l
aphookkensidah.pro/a.W/Z/yOQY2x9ZkPZ/Tr9z6ubg2E5HlxSYWxQy9jNdDHAxwCOOTdID1VOcCtZEwhd/XJNZoQWDm/9EuxZ/UGl/kBP/TnQ/wNMqDzkYybN/
125 KB
31 KB
Script
General
Full URL
http://aphookkensidah.pro/a.W/Z/yOQY2x9ZkPZ/Tr9z6ubg2E5HlxSYWxQy9jNdDHAxwCOOTdID1VOcCtZEwhd/XJNZoQWDm/9EuxZ/UGl/kBP/TnQ/wNMqDzkYybN/THgp=l
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
88.85.94.234 , Netherlands, ASN35415 (WEBZILLA, NL),
Reverse DNS
Software
nginx /
Resource Hash
8f95f85d0e16119d67d5fd1125c97c079848b1779caf627f2468360450880795

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:47 GMT
Content-Encoding
gzip
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript
Cache-Control
no-store, no-cache, must-revalidate
Transfer-Encoding
chunked
HTA-User
<unauthorized>
Connection
keep-alive
Expires
Thu, 19 Nov 1981 08:52:00 GMT
bi.js
cdn.tsyndicate.com/sdk/v1/
5 KB
3 KB
Script
General
Full URL
http://cdn.tsyndicate.com/sdk/v1/bi.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_center_02.js
Protocol
HTTP/1.1
Server
2606:4700::6811:326b , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
58ad9abcdcbf989595e324b5f1968b3b39229c41ee638f9a7842b2ec00129bbb

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:46 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Mon, 11 Feb 2019 09:39:57 GMT
Server
cloudflare
ETag
W/"5c6142ed-15b5"
Vary
Accept-Encoding
Content-Type
application/javascript
Expires
Fri, 01 Mar 2019 20:38:46 GMT
Cache-Control
public, max-age=3600
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4b0d97db0ba6bef8-FRA
Cf-Polished
origSize=5557
Cf-Bgj
minify
invoke.js
6ped2nd3yp.com/864bedb2a274a6a24f1d7538615b511c/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/864bedb2a274a6a24f1d7538615b511c/invoke.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_content_top_tt.js
Protocol
HTTP/1.1
Server
198.134.112.243 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:24 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
invoke.js
6ped2nd3yp.com/01c8251af637a8a51c7845f76e92fec2/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/01c8251af637a8a51c7845f76e92fec2/invoke.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_content_top_tt.js
Protocol
HTTP/1.1
Server
198.134.112.241 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:16 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
li_tag_list_user.png
xbooks.to/css/pc/images/
252 B
507 B
Image
General
Full URL
http://xbooks.to/css/pc/images/li_tag_list_user.png
Requested by
Host: www.google-analytics.com
URL: https://www.google-analytics.com/analytics.js
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
956579bb9e384a4cda1cbaf98d0478ae95c05c63f8f1525fb51d0c42539c0f8e

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/main.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/main.css
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
Fri, 01 Mar 2019 19:38:47 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a1222b6-fc-5712950845180"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
252
sidebar_li_tag_list.png
xbooks.to/css/pc/images/
250 B
505 B
Image
General
Full URL
http://xbooks.to/css/pc/images/sidebar_li_tag_list.png
Requested by
Host: www.google-analytics.com
URL: https://www.google-analytics.com/analytics.js
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
639de4aa90d3a89349ef3d8071579ba68336fe924a554949556d276245d60d31

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/main.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/main.css
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
Fri, 01 Mar 2019 19:38:47 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a1223b7-fa-5712950845180"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
250
collect
www.google-analytics.com/r/
35 B
111 B
Image
General
Full URL
https://www.google-analytics.com/r/collect?v=1&_v=j73&a=1940782126&t=pageview&_s=1&dl=http%3A%2F%2Fxbooks.to%2F&ul=en-us&de=UTF-8&dt=X%20BOOKS%20(%E3%82%A8%E3%83%83%E3%82%AF%E3%82%B9%E3%83%96%E3%83%83%E3%82%AF%E3%82%B9)%E2%94%82%E5%90%8C%E4%BA%BA%E8%AA%8C%E3%82%92%E9%96%B2%E8%A6%A7%E3%81%A7%E3%81%8D%E3%82%8B%E7%84%A1%E6%96%99%E6%8A%95%E7%A8%BF%E3%82%B5%E3%82%A4%E3%83%88%20X%20BOOKS&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&_u=IEBAAUAB~&jid=1528186133&gjid=264169294&cid=1175261581.1551469127&tid=UA-125317163-1&_gid=580343141.1551469127&_r=1&gtm=2ou241&z=952877688
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:816::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://xbooks.to/
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
Fri, 01 Mar 2019 19:38:47 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
access-control-allow-origin
*
content-type
image/gif
status
200
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
35
expires
Fri, 01 Jan 1990 00:00:00 GMT
Cookie set fd1cf51ad24d4f4b9c40e6b99be6a1eb.html
tsyndicate.com/iframes2/ Frame DA16
0
0
Document
General
Full URL
http://tsyndicate.com/iframes2/fd1cf51ad24d4f4b9c40e6b99be6a1eb.html?keywords=BOOKS,BOOKS&adb=0&w=1600&h=1200
Requested by
Host: cdn.tsyndicate.com
URL: http://cdn.tsyndicate.com/sdk/v1/bi.js
Protocol
HTTP/1.1
Server
2606:4700::6811:306b , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash

Request headers

Host
tsyndicate.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://xbooks.to/
Accept-Encoding
gzip, deflate
Cookie
__cfduid=d5ececfe63c4fc78ce12feb7cc2d0b5881551469126
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://xbooks.to/

Response headers

Date
Fri, 01 Mar 2019 19:38:47 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Cache-Control
no-cache, no-store, no-transform, must-revalidate no-transform
Pragma
no-cache
Expires
0
Vary
*
Link
<http://cdn.tsyndicate.com/sdk/v1/b.b.js>; rel=preload; as=script, <http://cdn.tsyndicate.com/images/7/5/b4a820fb25c084e100bb304c83153117c9f9f1_origin.gif>; rel=preload; as=image
Set-Cookie
bfq=e0SIEaFjS44bOWbAwNGFhYgxBbfEcCiijMQYNWpk1FhDxo0ufRQE; expires=Sat, 02 Mar 2019 19:38:47 GMT; domain=.tsyndicate.com; path=/ ts_uid=17c2e66b-42d4-4076-a5f0-a4339eed2c79; expires=Thu, 01 Mar 2029 19:38:47 GMT; domain=.tsyndicate.com; path=/ ts_s=2b150692-a77c-4e70-a13a-5ee1e35a3463; expires=Fri, 01 Mar 2019 19:38:47 GMT; domain=.tsyndicate.com; path=/
X-Robots-Tag
none
Server
cloudflare
CF-RAY
4b0d97dcbb236385-FRA
Content-Encoding
gzip
collect
www.google-analytics.com/
35 B
109 B
Image
General
Full URL
https://www.google-analytics.com/collect?v=1&_v=j73&a=1940782126&t=event&_s=2&dl=http%3A%2F%2Fxbooks.to%2F&ul=en-us&de=UTF-8&dt=X%20BOOKS%20(%E3%82%A8%E3%83%83%E3%82%AF%E3%82%B9%E3%83%96%E3%83%83%E3%82%AF%E3%82%B9)%E2%94%82%E5%90%8C%E4%BA%BA%E8%AA%8C%E3%82%92%E9%96%B2%E8%A6%A7%E3%81%A7%E3%81%8D%E3%82%8B%E7%84%A1%E6%96%99%E6%8A%95%E7%A8%BF%E3%82%B5%E3%82%A4%E3%83%88%20X%20BOOKS&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&ec=banner&ea=imp&el=pc_900_250&_u=KEBAAUAB~&jid=&gjid=&cid=1175261581.1551469127&tid=UA-125317163-1&_gid=580343141.1551469127&gtm=2ou241&z=2125051109
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:816::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://xbooks.to/
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
Thu, 21 Feb 2019 21:04:21 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
686066
content-type
image/gif
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
invoke.js
6ped2nd3yp.com/d8b69d54b9f9ddb858a5dcc046c0b951/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/d8b69d54b9f9ddb858a5dcc046c0b951/invoke.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_content_bottom_tt.js
Protocol
HTTP/1.1
Server
198.134.112.241 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:16 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
invoke.js
6ped2nd3yp.com/f6f10957e12d96d876e9197b6c9714a7/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/f6f10957e12d96d876e9197b6c9714a7/invoke.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_content_bottom_tt.js
Protocol
HTTP/1.1
Server
198.134.112.243 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:24 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
Cookie set 37758
ca.clcknads.pro/v2/a/ban/iframe/ Frame D5C8
0
0
Document
General
Full URL
http://ca.clcknads.pro/v2/a/ban/iframe/37758
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_center_01.js
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
ca.clcknads.pro
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://xbooks.to/
Accept-Encoding
gzip, deflate
Cookie
uuid=
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://xbooks.to/

Response headers

Server
nginx
Date
Fri, 01 Mar 2019 19:38:47 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Max-Age
86400
Referrer-Policy
unsafe-url
Set-Cookie
uuid=bbed15cd01aa34154ed051d34e36cba46b7f85a59949ca1470b0c0c57c280fb2; expires=Sun, 01 Mar 2020 19:38:47 GMT; domain=clcknads.pro; path=/; HttpOnly
Content-Encoding
gzip
Cookie set 37757
ca.clcknads.pro/v2/a/ban/iframe/ Frame 9163
0
0
Document
General
Full URL
http://ca.clcknads.pro/v2/a/ban/iframe/37757
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_center_02.js
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
ca.clcknads.pro
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://xbooks.to/
Accept-Encoding
gzip, deflate
Cookie
uuid=
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://xbooks.to/

Response headers

Server
nginx
Date
Fri, 01 Mar 2019 19:38:47 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Max-Age
86400
Referrer-Policy
unsafe-url
Set-Cookie
uuid=bbed15cd01aa34154ed051d34e36cba46b7f85a59949ca1470b0c0c57c280fb2; expires=Sun, 01 Mar 2020 19:38:47 GMT; domain=clcknads.pro; path=/; HttpOnly
Content-Encoding
gzip
index105.html
www.ppc-direct.com/ Frame A284
0
0
Document
General
Full URL
https://www.ppc-direct.com/index105.html?affid=202167
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Security
TLS 1.2, RSA, AES_128_CBC
Server
38.91.109.230 , United States, ASN30212 (HYPERMEDIA-SYSTEMS - Hypermedia Systems, Inc., US),
Reverse DNS
Software
/
Resource Hash

Request headers

Host
www.ppc-direct.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://xbooks.to/
Accept-Encoding
gzip, deflate, br
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://xbooks.to/

Response headers

Date
Fri, 01 Mar 2019 19:38:47 GMT
Content-Type
text/html
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
X-Sh
104
Content-Encoding
gzip
sidebar_li_keyword_list.png
xbooks.to/css/pc/images/
261 B
517 B
Image
General
Full URL
http://xbooks.to/css/pc/images/sidebar_li_keyword_list.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
a9af63afa756d3cd813bb03467b36534c30262a827f3d46c025a595a9b4f9df6

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/sidebar.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126; _ga=GA1.2.1175261581.1551469127; _gid=GA1.2.580343141.1551469127; _gat_gtag_UA_125317163_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/sidebar.css
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
Fri, 01 Mar 2019 19:38:47 GMT
Last-Modified
Tue, 17 Jul 2018 03:12:22 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"5188053-105-5712950845180"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
261
rank1.png
xbooks.to/css/pc/images/
917 B
1 KB
Image
General
Full URL
http://xbooks.to/css/pc/images/rank1.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
2919aab5e065363be4031a8430242f58c2c1c9dbd4c1b8802d43ff8ed5b60e8c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/sidebar.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126; _ga=GA1.2.1175261581.1551469127; _gid=GA1.2.580343141.1551469127; _gat_gtag_UA_125317163_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/sidebar.css
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
Fri, 01 Mar 2019 19:38:48 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a12239f-395-548f1c612eac0"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
917
rank2.png
xbooks.to/css/pc/images/
914 B
1 KB
Image
General
Full URL
http://xbooks.to/css/pc/images/rank2.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
1dd4b712c195df6a7ddaabacf13b588e30b4b2662468685e742c9ce81e958671

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/sidebar.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126; _ga=GA1.2.1175261581.1551469127; _gid=GA1.2.580343141.1551469127; _gat_gtag_UA_125317163_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/sidebar.css
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
Fri, 01 Mar 2019 19:38:48 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a1223a0-392-548f1c612eac0"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
914
rank3.png
xbooks.to/css/pc/images/
944 B
1 KB
Image
General
Full URL
http://xbooks.to/css/pc/images/rank3.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.151 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069042.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
32c09bf08eb66334cc10cf01776b0f36a3e014bcab8b703802f9fb39ac26e794

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/sidebar.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126; _ga=GA1.2.1175261581.1551469127; _gid=GA1.2.580343141.1551469127; _gat_gtag_UA_125317163_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/sidebar.css
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
Fri, 01 Mar 2019 19:38:48 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"a1223a1-3b0-548f1c612eac0"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
944
rank.png
xbooks.to/css/pc/images/
338 B
594 B
Image
General
Full URL
http://xbooks.to/css/pc/images/rank.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
029b51261c28934c3fcb10020c5c3576306a22d7c389f1b6773be9b31d770eaa

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/css/pc/sidebar.css
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126; _ga=GA1.2.1175261581.1551469127; _gid=GA1.2.580343141.1551469127; _gat_gtag_UA_125317163_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/css/pc/sidebar.css
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
Fri, 01 Mar 2019 19:38:50 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:51 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"7208030-152-548f1c612eac0"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
338
Cookie set 5965461f56e4dd0a9e7b94c1
spot-01.trackingpro.pro/ Frame FDA2
0
0
Document
General
Full URL
http://spot-01.trackingpro.pro/5965461f56e4dd0a9e7b94c1?params[cv1]={publisher_ID}&params[cv2]={xuid}
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_tsuibi.js
Protocol
HTTP/1.1
Server
31.220.24.145 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx/1.14.2 / Express
Resource Hash

Request headers

Host
spot-01.trackingpro.pro
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://xbooks.to/
Accept-Encoding
gzip, deflate
Cookie
5afeba38494be419e67c39a6=1; uuid=rk21UqZPLE
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://xbooks.to/

Response headers

Server
nginx/1.14.2
Date
Fri, 01 Mar 2019 19:38:47 GMT
Content-Type
text/html; charset=utf-8
Content-Length
624
Connection
keep-alive
X-Powered-By
Express
Set-Cookie
5965461f56e4dd0a9e7b94c1=1; Max-Age=9999999.999; Path=/; Expires=Tue, 25 Jun 2019 13:25:27 GMT; HttpOnly uuid=rk21UqZPLE; Max-Age=9999999.999; Domain=.trackingpro.pro; Path=/; Expires=Tue, 25 Jun 2019 13:25:27 GMT; HttpOnly
ETag
W/"270-jC8+z5TNz9QlOfexFJe1Ug"
Cookie set MQjSUS4m
aphookkensidah.pro/aWW.ZoytPM1-9m1WcRm/wa9TJoT/JgGhYuSi5/XpJfT/JHGlWbiGUJyNR/nvlNPqUBV/krynekDKlbaqaE1FBWaYJITzJvGkVPHvIa5ReYjaZY1/Ypmlc/yCRaTrVyIxbJH/h/T/WwVadb4yUpXdkq5/alkk5KkyRGEahWBwebHAdDD/T/... Frame 5895
0
0
Document
General
Full URL
http://aphookkensidah.pro/aWW.ZoytPM1-9m1WcRm/wa9TJoT/JgGhYuSi5/XpJfT/JHGlWbiGUJyNR/nvlNPqUBV/krynekDKlbaqaE1FBWaYJITzJvGkVPHvIa5ReYjaZY1/Ypmlc/yCRaTrVyIxbJH/h/T/WwVadb4yUpXdkq5/alkk5KkyRGEahWBwebHAdDD/T/0m9ZUbZtEdlvEiM/VHZsPrY/0rNs0lWrkuVN3/azGpQvlEM/kVZBYvS/k_5Gawbd1SFRXHRiG/0plYMQkCYK5/RhXbVK4wW/iqUQyuRblsVOHOb/CFUfyMRnmotWCHUXCdUbyMRClkRoujUrSfUmy/RinWdGObTuXRF/ENeRmUtQZCetWHJcOgJLTuJ/GCVhEQhQnlcvC/UKzMR/GMw/mcewmW9EuKZkUhl/kQPRTaQfwcMyDkknyQNYTWgZmTcRHuVjzyaNFFpXvYbxm/V/JWZjDU0V0oMbDiA/5/MQjSUS4m
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
88.85.94.234 , Netherlands, ASN35415 (WEBZILLA, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
aphookkensidah.pro
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://xbooks.to/
Accept-Encoding
gzip, deflate
Cookie
PHPSESSID=19f1dbc44b84ef2d0504ac2049ab0d12
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://xbooks.to/

Response headers

Server
nginx
Date
Fri, 01 Mar 2019 19:38:47 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
HTA-User
<unauthorized>
P3P
CP="CUR ADM OUR NOR STA NID"
Expires
Mon, 26 Jul 2011 05:00:00 GMT
Last-Modified
Fri, 01 Mar 2019 19:38:47 GMT
Cache-Control
no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma
no-cache
Set-Cookie
kadUid=70cbd797f7e9cfd693261688432f8353; expires=Sat, 29-Feb-2020 19:38:47 GMT; Max-Age=31536000; path=/ kadRPix=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/ kadCPix=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/ kadUn=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
Content-Encoding
gzip
ads.js
ads.exosrv.com/
2 KB
962 B
Script
General
Full URL
https://ads.exosrv.com/ads.js
Requested by
Host: gum.xbooks.to
URL: http://gum.xbooks.to/js/pc/pc_tsuibi2.js
Protocol
H2
Security
TLS 1.3, , AES_256_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
bbbb0ffd2b7f74d99ab11edc18f0a73ee170745524644a785a03be193eb13a04

Request headers

Referer
http://xbooks.to/
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
Intervention
<https://www.chromestatus.com/feature/5718547946799104>; level="warning"

Response headers

date
Fri, 01 Mar 2019 19:38:47 GMT
content-encoding
gzip
last-modified
Fri, 01 Mar 2019 17:40:17 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
779
expires
Fri, 01 Mar 2019 22:38:47 GMT
Cookie set ads-iframe-display.php
syndication.exosrv.com/ Frame 34BB
0
0
Document
General
Full URL
http://syndication.exosrv.com/ads-iframe-display.php?idzone=3308906&type=300x250&p=http%3A//xbooks.to/&dt=1551469127509&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exosrv.com
URL: https://ads.exosrv.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exosrv.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://xbooks.to/
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://xbooks.to/

Response headers

Server
nginx
Date
Fri, 01 Mar 2019 19:38:47 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%225c798a47916f99.44250671683461297%22%3B%7D; expires=Sun, 28-Feb-2021 19:38:47 GMT; Max-Age=63072000; domain=exosrv.com impressions=x%9CK%B42%B4%AA%CE%B4225%B74%B70%B2N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%D0%C4%CC%D2%D0%C8%1C%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%FB%D6%0F%DB; expires=Sat, 02-Mar-2019 19:38:47 GMT; Max-Age=86400; path=/; domain=.exosrv.com
Content-Encoding
gzip
e0ff114ad99a87345d93bd326ef002e8.js
6ped2nd3yp.com/e0/ff/11/
0
0
Script
General
Full URL
http://6ped2nd3yp.com/e0/ff/11/e0ff114ad99a87345d93bd326ef002e8.js
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
198.134.112.243 Garden City, United States, ASN27257 (WEBAIR-INTERNET - Webair Internet Development Company Inc., US),
Reverse DNS
Software
nginx/1.15.1 /
Resource Hash

Request headers

Referer
http://xbooks.to/
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

Access-Control-Allow-Origin
*
Date
Fri, 01 Mar 2019 19:38:26 GMT
Server
nginx/1.15.1
Connection
keep-alive
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Length
0
Content-Type
application/javascript
collect
www.google-analytics.com/
35 B
103 B
Image
General
Full URL
https://www.google-analytics.com/collect?v=1&_v=j73&a=1940782126&t=event&_s=3&dl=http%3A%2F%2Fxbooks.to%2F&ul=en-us&de=UTF-8&dt=X%20BOOKS%20(%E3%82%A8%E3%83%83%E3%82%AF%E3%82%B9%E3%83%96%E3%83%83%E3%82%AF%E3%82%B9)%E2%94%82%E5%90%8C%E4%BA%BA%E8%AA%8C%E3%82%92%E9%96%B2%E8%A6%A7%E3%81%A7%E3%81%8D%E3%82%8B%E7%84%A1%E6%96%99%E6%8A%95%E7%A8%BF%E3%82%B5%E3%82%A4%E3%83%88%20X%20BOOKS&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&ec=banner&ea=imp&el=pc_tsuibi_left&_u=KEBAAUAB~&jid=&gjid=&cid=1175261581.1551469127&tid=UA-125317163-1&_gid=580343141.1551469127&gtm=2ou241&z=1233295616
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:816::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://xbooks.to/
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
Thu, 21 Feb 2019 21:04:21 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
686066
content-type
image/gif
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
/
aphookkensidah.pro/aHWE1YwHc.mkVzzNcd2Kl/vZbBjk9/fSdNXxJLsrPnSYUQy/R/moEju/VRy/U/y/RclNoElIMlkaZt5/Tr1zFuZCM/ndg/5LWzm/tqQwWIimUKyORIlaRnyOOcXPo/2rdsW/J/nrMikWUW1/SEG/xQ4OUF1xlSXUeXF/Fz5/OcWFpqOvZc...
3 B
991 B
Script
General
Full URL
http://aphookkensidah.pro/aHWE1YwHc.mkVzzNcd2Kl/vZbBjk9/fSdNXxJLsrPnSYUQy/R/moEju/VRy/U/y/RclNoElIMlkaZt5/Tr1zFuZCM/ndg/5LWzm/tqQwWIimUKyORIlaRnyOOcXPo/2rdsW/J/nrMikWUW1/SEG/xQ4OUF1xlSXUeXF/Fz5/OcWFpqOvZcEtRAI/QXXHh/3kQ/0e9QP/VSGyReJ/RADkFLWGTE2lNjDIdmFXpEFCdR2KhakpJxTRJqGDWREJppOKWMm/9eReVk0fRStHJSTkJ/GPO/UVV/1aehFVoJlbMfkIZaV/RN2ZwTlWMbkdZxr/QhlvA/lAM/kpZXUAbxlzEwlrMkkCZv3/TWkp1fxoRVHIpSr/WuXrlAigTlinUaygRzl/RdIYZO3/ADl-MY0pRFscJvnRpivbbmmnVOJIZNDI0/0hMNDVA/5iMkjBUT4dJqnHBG1EcH2shaawbk2O5/lvSYWCQG9xNUDaAvwPOlT/Iz1/OrC/Z/hUZIEXl/kGPeTZIcyBNVTGExyfNpQx=K=/
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
88.85.94.234 , Netherlands, ASN35415 (WEBZILLA, NL),
Reverse DNS
Software
nginx /
Resource Hash
6a3cf5192354f71615ac51034b3e97c20eda99643fcaf5bbe6d41ad59bd12167

Request headers

Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:47 GMT
Content-Encoding
gzip
Last-Modified
Fri, 01 Mar 2019 19:38:47 GMT
Server
nginx
Vary
Accept-Encoding
P3P
CP="CUR ADM OUR NOR STA NID"
Cache-Control
no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Transfer-Encoding
chunked
HTA-User
<unauthorized>
Connection
keep-alive
Content-Type
text/html; charset=UTF-8
Expires
Mon, 26 Jul 2011 05:00:00 GMT
blank
ca.clcknads.pro/
0
178 B
XHR
General
Full URL
https://ca.clcknads.pro/blank
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v2/a/pop/js/40434
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
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://xbooks.to/
Origin
http://xbooks.to

Response headers

date
Fri, 01 Mar 2019 19:38:48 GMT
referrer-policy
unsafe-url
server
nginx
status
200
access-control-max-age
86400
content-type
text/html; charset=UTF-8
access-control-allow-origin
http://xbooks.to
access-control-allow-credentials
true
content-length
0
b_top.png
xbooks.to/js/pc/
662 B
918 B
Image
General
Full URL
http://xbooks.to/js/pc/b_top.png
Requested by
Host: xbooks.to
URL: http://xbooks.to/
Protocol
HTTP/1.1
Server
37.187.226.152 Gif-sur-yvette, France, ASN16276 (OVH, FR),
Reverse DNS
ns3069043.ip-37-187-226.eu
Software
Apache/2.2.15 (CentOS) /
Resource Hash
3252c5a18c6d5c216e0f5d6a72b8e8b412344fa3ab403e88ceca52dd56ea4924

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
xbooks.to
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://xbooks.to/
Cookie
CakeCookie[my_book]=Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D; __cfduid=d5d8356539838a80318de626891e9c18a1551469126; _ga=GA1.2.1175261581.1551469127; _gid=GA1.2.580343141.1551469127; _gat_gtag_UA_125317163_1=1
Connection
keep-alive
Cache-Control
no-cache
Referer
http://xbooks.to/
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
Fri, 01 Mar 2019 19:38:50 GMT
Last-Modified
Mon, 20 Feb 2017 08:08:50 GMT
Server
Apache/2.2.15 (CentOS)
ETag
"518c1ed-296-548f1c603a880"
Content-Type
image/png
Connection
close
Accept-Ranges
bytes
Content-Length
662
truncated
/
64 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d4585f8e0a93173b1f9e1d150edf27baae2675dc0b964650ba05c5b08e265a1

Request headers

Response headers

Content-Type
text/plain

Verdicts & Comments Add Verdict or Comment

53 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| onselectstart object| onselectionchange function| queueMicrotask function| gtag object| dataLayer object| google_tag_manager string| GoogleAnalyticsObject function| ga function| $ function| jQuery string| virtualTopId undefined| virtualTop undefined| adjTraverser undefined| adjPosition string| callExternal number| delayExternal object| coliss object| pageScrollTimer object| scrolltotop object| jumpURL number| n function| page_jump string| jump_url function| prePage function| nextPage function| AutoJump object| jQuery1820919807091616549 object| google_tag_data object| gaplugins object| gaGlobal object| gaData boolean| _tsAdBlockDetect function| bookStand object| _A object| A string| ad_idzone string| ad_width string| ad_height function| getParameterFromUrl 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 function| i333 function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop

22 Cookies

Domain/Path Name / Value
.exosrv.com/ Name: __uvt
Value: a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c798a47916f99.44250671683461297%22%3B%7D
aphookkensidah.pro/ Name: kadUn
Value: ab1f6%3AQ%2Bhc6c6GqSik02rZ6DjYzyAg2r7uW%2FHE75FCiWYsb4XpPq%2B0JLhBmPKJ%2FaSFAeBPPF05us3pE7yTklidZ7Ktljxnw0ZWfI5L4ZgbXZI84U4%3D
aphookkensidah.pro/ Name: kadUid
Value: 70cbd797f7e9cfd693261688432f8353
aphookkensidah.pro/ Name: PHPSESSID
Value: 19f1dbc44b84ef2d0504ac2049ab0d12
ads2.contentabc.com/ Name: adtool_guid
Value: Ch5KGlx5ikdiik0IJqLdAg==
.exosrv.com/ Name: impressions
Value: x%9CK%B42%B4%AA%CE%B4225%B74%B70%B2N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%D0%C4%CC%D2%D0%C8%1C%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%FB%D6%0F%DB
.ppc-direct.com/ Name: _gat
Value: 1
.ppc-direct.com/ Name: _gid
Value: GA1.2.1835193034.1551469128
.clcknads.pro/ Name: uuid
Value: bbed15cd01aa34154ed051d34e36cba46b7f85a59949ca1470b0c0c57c280fb2
.tsyndicate.com/ Name: ts_uid
Value: 17c2e66b-42d4-4076-a5f0-a4339eed2c79
ads2.contentabc.com/ Name: RNLBSERVERID
Value: ded7077
.trackingpro.pro/ Name: uuid
Value: rk21UqZPLE
spot-01.trackingpro.pro/ Name: 5965461f56e4dd0a9e7b94c1
Value: 1
spot-01.trackingpro.pro/ Name: 5afeba38494be419e67c39a6
Value: 1
.tsyndicate.com/ Name: __cfduid
Value: d5ececfe63c4fc78ce12feb7cc2d0b5881551469126
.xbooks.to/ Name: __cfduid
Value: d5d8356539838a80318de626891e9c18a1551469126
.xbooks.to/ Name: _gat_gtag_UA_125317163_1
Value: 1
.ppc-direct.com/ Name: _ga
Value: GA1.2.1327593919.1551469128
.xbooks.to/ Name: _gid
Value: GA1.2.580343141.1551469127
.xbooks.to/ Name: _ga
Value: GA1.2.1175261581.1551469127
.tsyndicate.com/ Name: bfq
Value: e0SIEaFjS44bOWbAwNGFhYgxBbfEcCiijMQYNWpk1FhDxo0ufRQE
xbooks.to/ Name: CakeCookie[my_book]
Value: Q2FrZQ%3D%3D.grBpqhILxwIGKw%3D%3D

46 Console Messages

Source Level URL
Text
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IGZhbHNlLAoJCQl3aWR0aDogbnVsbCwKCQkJaGVpZ2h0OiBudWxsLAoJCQl0b3A6IG51bGwsCgkJCWxlZnQ6IG51bGwsCgkJCWNvb2tpZUV4cGlyZXM6IDEsCgkJCXNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiBzZWxmLmlzQWxsb3dlZCgpCgkJCX0sCgkJCWJlZm9yZU9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXNlbGYuaW5jcmVtZW50KCkKCQkJfSwKCQkJYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlyZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCgkJCX0KCQl9KQoJfQoKCXdpbmRvdy5jSVBvcCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewoJCQlzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKCQkJaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAoJCQlmcmVxdWVuY3k6IDIxNjAwLAoJCQlsaW1pdDogMSwKCQkJbGltaXRQZXJQYWdlOiAwLAoJCQlsaW1pdFBlclNlc3Npb246IDAKCQl9KQoJCXBvcHVuZGVyLmFkZCh1cmwpCgl9Cn0pKHdpbmRvdykK(Line 1)
Message:
console.clear

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.

6ped2nd3yp.com
ads.exosrv.com
ajax.googleapis.com
aphookkensidah.pro
ca.clcknads.pro
cdn.tsyndicate.com
cdnjs.cloudflare.com
gum.xbooks.to
netdna.bootstrapcdn.com
spot-01.trackingpro.pro
syndication.exosrv.com
t01.xbooks.to
t02.xbooks.to
tsyndicate.com
www.google-analytics.com
www.googletagmanager.com
www.ppc-direct.com
xbooks.to
198.134.112.241
198.134.112.243
209.197.3.15
2606:2800:234:1f1f:1754:1fef:718:1223
2606:4700:30::6812:244e
2606:4700:30::6812:254e
2606:4700::6811:306b
2606:4700::6811:326b
2606:4700::6813:c497
2a00:1450:4001:808::2008
2a00:1450:4001:816::200e
2a00:1450:4016:80c::200a
31.220.24.145
37.187.226.151
37.187.226.152
38.91.109.230
88.208.59.100
88.85.94.234
95.211.229.246
001c4df1d5d3dc43144133248f9910a5ce4ab6c2ba801b5abc3cc3b26ec13c8b
029b51261c28934c3fcb10020c5c3576306a22d7c389f1b6773be9b31d770eaa
05b7b8ec26301050b314a7e9ee18aff3039a9ce5052adc64d3d689e755a65203
067c5e66b330dcada30971538c037856b508e87290c303382ec750fcc0f17131
0de23d7286c98bdd54700e84cf378520148f6c7a0b18ceca1875aa2c50dc45dd
124b45ebc63b170ba082001f8d92823d14e86cce6460f9fdb7e7aa076c8b9a35
164f5f67b95e687b3d6f4d5ad4ce3c32166344b90e3849723e013bda44712799
17d5ec3d7a561658da2320876ef2358c522e0cd2b7c4e97bcab6384958dc7a8e
1db7b2af45577e524fa22b4cbfe7d68e1313cafa830aaecfdcc80c1c06598e76
1dd4b712c195df6a7ddaabacf13b588e30b4b2662468685e742c9ce81e958671
1e0c471b212fb97aa81af17ef07b932c029fec4220b106bc0e26040cbab5012f
200cb78bd51d031939d1d1e5de09bc1c16d06f2a4e4614152f3b9b87b0dd5a8b
22d296d7272fc052960a00d6ed9c6a20284da436e14e88ff91b12985a8728909
24f0de06d5b983fc4604315c907c9c64ac0d97813524f8c7b13e4d0b947206f3
28078aa3979bea52bcbefd7061c28abf0a56896bff3e284d368e6ee7be8b63fa
2919aab5e065363be4031a8430242f58c2c1c9dbd4c1b8802d43ff8ed5b60e8c
299a2c09adbea7257cf096bce952d4f6837aa3f2a9b21e2cecbc13c96f7d7bae
2c4a86c01c324639563bc78158de21ec2799f813fb1a0aa66368be37c55e3a89
2d44ea58f80ca1b0d76ebcf0f96587d7560c3e777f54c28884d0b3d2bae4956e
2ec4520735fa76a35d293893da0d494df65a97acec3d41ed0bb3e5ce83563c1f
3083e8d3b21ddc3f0e6d65ec3580aa6edfaadca5d9737d9caa27e6a233e1ccf3
30f4a5e65aeb50630bbe024072989bca2a555aba420f480a824ba9c4e557226f
31d6eb4d663d45a96c55c535fdfe5c15f83f4e571cd94e12e7623cb3b64ef064
3252c5a18c6d5c216e0f5d6a72b8e8b412344fa3ab403e88ceca52dd56ea4924
325c6ccd8aed4e434ee184135515d6066c08c4b983603d4a8b2f3e20600f7930
32c09bf08eb66334cc10cf01776b0f36a3e014bcab8b703802f9fb39ac26e794
37426c96f4aae7a3389dc8e2a2749720381d821f9e1dff87a918d91db0e529b5
399a9ebc6da98863c170731b9d5a34e8691bff83642aa9c9646654b7b3b11ab7
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
413367b1770c77f41002a0ec6a208efbacdd25bdb4fc5bd96a05a13c28b7c91a
461863b276e8d6f247a61e3be1fcee27daa96170093abcd0e4ffdb8a8daedc37
47cc88e7204b762bf236fcf581091d16a5f42826a835493d6aee8f36faae6a0a
489918f1499f26598de6403df75b140560f56bc296d48802d761fa2484d800b9
4952c727cad71809ff6352d81638e6dfa803afe44adfd9dd188ee9b7a03c4948
55dc9a8f1f095606aeea72fe48acb3dc240a6d34f74aa55c60985c8b5ebe40aa
55e296452f659a81e470dabd7f86fa9d8282d190083207321be1766946655900
58ad9abcdcbf989595e324b5f1968b3b39229c41ee638f9a7842b2ec00129bbb
5b4d8d092f89eedb0f8d0d2e994fa7c593a48a215256bc0bdf3e1eadf1e70136
5b5939c28eb9f275dc523de30737c8aae5e2ac151f66bc2ff7e57bbe321c5203
5c645cc5ab6a585a2c8ff3eaacd04d6669226d7282996d4b5169b6b448faad0b
60938cde05ef31d7155cd7e64885ff59c0b4c7f5e8d6dd5041f434570573e0f1
62c4ca756cef44887028911ea40d05e7f8c1d3982f6318e0f3fd3b54a8718870
639de4aa90d3a89349ef3d8071579ba68336fe924a554949556d276245d60d31
66de87a068a33f303caf18e2ca710bc05aaa37ff18c726a74a9e11930ee6818b
672bf0a504576d9b5bf5ed0fc812a15ca077c54f2195e79564fb02192c31f822
67dec4023b505a760dcb0ee07ffeb642d1f108cacb3b251fce74cc6dbbf2c36f
68cb97a8452ff3f1402ec4083477bacc5408a2d2f90ec2d5ffe14170e08fb981
6a3cf5192354f71615ac51034b3e97c20eda99643fcaf5bbe6d41ad59bd12167
6f0a5110420839e5f328bbc2ba70c35955fa82b8f75d48592d2b62f1eed9cba9
7169e7df07adc7c6f835e4f126e76a50f836ed420a46804bf843ce4cf37e1eb2
719c7de57201b33e8fac50c2adb55f062fea5d90fbb29210283ff74add59ea3d
720a7d605dc7ba416e650793bbd9fd3f003f84acae8c07210a1bd114b6149d7f
7bc202fcfd4bd0f99aff8593d6e05e57c3030d3cb82cc621fe9ebcff5c5e8791
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
8bb1dc620417d1f899a157d9f2f9ca92c096502b1ef20fd040523996b8527cb2
8d4a13e272445acbbe8009f4c8101dd9f1ec07a251a417fb6147be0a5baa0db2
8f95f85d0e16119d67d5fd1125c97c079848b1779caf627f2468360450880795
938d0c303951a4e38d21d9074f4964135a813c12f45a1b12312e214a7a4fc72c
956579bb9e384a4cda1cbaf98d0478ae95c05c63f8f1525fb51d0c42539c0f8e
96e71bf8db74b210ef00082f759e17b06b0fad9cc2b731096046d676be708466
9b97cd3653bbaf83a9d42ae1e94c6445661d85aaf45e669fe83879b1ecd6b3dc
9d4585f8e0a93173b1f9e1d150edf27baae2675dc0b964650ba05c5b08e265a1
9e7404346d2147e684c0bf40c5ff1c78b5ffe06f6b900e63af0a8a9bef3dcc80
9fac2740c1c4abeea2ae780b001fa1621a7a5f706ad4cd2f50e8546024511c90
a0f9b2bf3a7a2002038a212a0284f5f6389d91f8aaaf0f605a42bbe566450c5b
a3d660f1dcd56cdf87886fdb3ef328ef90c711a01d39b6fb7de984e4fa699cdb
a589d8980b33eb030f5c8b6b547a35d8f129ca5ca8b19d5caa49ef40b6959f7f
a7bda0b45e8d59cb74a0a1c410b5917cf3c2243be0ba55c0439c1247f5116e7b
a9492483ccf2261106dccebed74aea2b48123fe42227a31f2f3e77594fce25eb
a9af63afa756d3cd813bb03467b36534c30262a827f3d46c025a595a9b4f9df6
ac42357db498afb1c10c4d64b5591af867544e012e41560a96494c3dff6aedab
afefee3ab589752ef3c4d7321b9936c70d43e46a62da78571e1a9a166ec6d968
b2ca075e0c475fbfb782356121a67f27b6b213b65c6fb02d18a3091f31b51741
b4daaf37cfd16ba085523862be7e43f8f17fc520d861b0864886ccd5b5bf354d
ba0c6994880fc9407b7bba848afc7c89d81abbd20ce4f6914b43765c53fd0621
bbbb0ffd2b7f74d99ab11edc18f0a73ee170745524644a785a03be193eb13a04
bd46ff207842d9d11e062fea74935faebc3c33ad230788efaec2272020077502
bd7fd1234e66fa11ee3952e9d30cca0860cbf11724684eb86d2ae6bb87c62a40
bf6a5549a14c3df9223029a258265726754ae05097d98e5cb2d9cd6348a99321
bfedc0083046f0db824b8ff1bb0f402fafe3bfac67516ca6b6c329bf526f05c8
c69d05b6eca88de11571df0a914a633cb0a24d76156f1aad663b0ee5df01d726
cb30f0d74d7767b99b2095b2d587c95d524dc3e6f4d9b3320788941eb4bd6810
cb5b33fde7f5649b538bdd4b9dd23ad23599e88a2e9e16045d1b495ee6c46efd
cbec9e748be166856220597b6d20bac568bb414ad3f026fbef17d59e903de0c4
d07759e4ef917747a355ff94ecc72d9f82cca8897f6c8bdfb0ddcc4a83c7de88
d40efcac911d8964f3728eaa767de281306ff55ba9377435a3364d4d1e1613f6
d86a4fc5c4cefad3e7afca85cc803fa3fa3f844217ae62a6cfd70733c3b1ccde
dad99c8f18ecfdf566195033e0f4285d1c59434666c20022cebe4c3979225a75
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e576f12e82c468567e420386b68476ff7045815976395bc6baad1a822c7368a7
e91b88e6c243fd32daeb4e0a12806f8a118d9dd2c3ded8f272b14ab58b7b7284
e967f13c18606dcdc1bef0bc41d7ffb3c63248c76ab091502f2128710d02a5ae
ea878d16501e3410344eb59057cb709406845b6f71b01c7ffd6ee155ebd0d92d
ec7397b98108a5055b84c1c00a28af12080332fbb2d3ca13b5bc8938c5397fcf
ee4f1cec39319dab5c283ecf3cc0b9e9a4951737a7584061f986408237526b70
ef4cf1baeb0c0c181dbdbd0fba3136e4c39cdea0a2e9fba6f9ada58eb4d477c5
effe09dd5281b145be8f737abf50446191bb3664db920ab9a60a137b927317e1
f3967fa79777e2722d1212d97dff5ef8b0f628e4a1e24dab1a05d0e8c139aa8a
f5538f6fdae85711e6eac2fd391e6d94a078007725e1027f0e5152a46eb3a7c3
f554d2f09272c6f71447ebfe4532d3b1dd1959bce669f9a5ccc99e64ef511729
fc5384034fe5e9ab765e8bdeccd0ab68f9e9beb4f59d4946f8bb39dfb09754be