URL: https://topvideosgay.com/
Submission: On April 10 via api from IT

Summary

This website contacted 12 IPs in 5 countries across 13 domains to perform 172 HTTP transactions. The main IP is 192.99.94.134, located in Montréal, Canada and belongs to OVH, FR. The main domain is topvideosgay.com.
TLS certificate: Issued by Let's Encrypt Authority X3 on March 1st 2019. Valid for: 3 months.
This is the only time topvideosgay.com was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
136 192.99.94.134 16276 (OVH)
16 88.208.59.71 39572 (ADVANCEDH...)
1 198.134.112.241 27257 (WEBAIR-IN...)
1 205.185.216.42 20446 (HIGHWINDS3)
1 94.31.29.128 33438 (HIGHWINDS2)
1 34.196.182.1 14618 (AMAZON-AES)
1 85.10.200.158 24940 (HETZNER-AS)
4 69.89.69.121 558 (NNEXT)
2 216.18.168.166 29789 (REFLECTED)
3 205.185.208.78 20446 (HIGHWINDS3)
4 216.18.168.26 29789 (REFLECTED)
172 12
Domain Requested by
136 topvideosgay.com topvideosgay.com
12 ca.clcknads.pro topvideosgay.com
ca.clcknads.pro
4 etahub.com topvideosgay.com
4 engine.phn.doublepimp.com ca.clcknads.pro
4 acrmbjkk6qc5utby.pro ca.clcknads.pro
topvideosgay.com
3 hw-cdn2.contentabc.com topvideosgay.com
2 a.adtng.com ca.clcknads.pro
topvideosgay.com
1 ad.a-ads.com topvideosgay.com
1 dcba.popcash.net cdn.popcash.net
1 cdn.popcash.net topvideosgay.com
1 ads.exosrv.com topvideosgay.com
1 muqson0kgr.com topvideosgay.com
0 c1.popads.net Failed topvideosgay.com
0 fonts.googleapis.com Failed topvideosgay.com
172 14
Subject Issuer Validity Valid
topvideosgay.com
Let's Encrypt Authority X3
2019-03-01 -
2019-05-30
3 months crt.sh
ca.clcknads.pro
Let's Encrypt Authority X3
2019-02-13 -
2019-05-14
3 months crt.sh
muqson0kgr.com
Let's Encrypt Authority X3
2019-02-27 -
2019-05-28
3 months crt.sh
exosrv.com
Let's Encrypt Authority X3
2019-02-10 -
2019-05-11
3 months crt.sh
*.popcash.net
COMODO RSA Domain Validation Secure Server CA
2017-04-05 -
2020-04-26
3 years crt.sh
acrmbjkk6qc5utby.pro
Let's Encrypt Authority X3
2019-02-14 -
2019-05-15
3 months crt.sh
*.a-ads.com
COMODO RSA Domain Validation Secure Server CA
2018-11-14 -
2020-12-09
2 years crt.sh
engine.doublepimp.com
Go Daddy Secure Certificate Authority - G2
2018-07-22 -
2019-09-20
a year crt.sh
*.adtng.com
DigiCert SHA2 High Assurance Server CA
2018-07-20 -
2020-07-24
2 years crt.sh
*.contentabc.com
DigiCert SHA2 High Assurance Server CA
2017-10-30 -
2019-07-13
2 years crt.sh
etahub.com
DigiCert SHA2 High Assurance Server CA
2019-04-08 -
2020-04-15
a year crt.sh

This page contains 5 frames:

Primary Page: https://topvideosgay.com/
Frame ID: 091900A2660B0AAF7FD6F53C68637E55
Requests: 171 HTTP requests in this frame

Frame: https://ad.a-ads.com/979895?size=300x250
Frame ID: 4578D857BDFDEB18B0605D3EE618D1BC
Requests: 1 HTTP requests in this frame

Frame: https://ca.clcknads.pro/v2/a/ban/iframe/31826
Frame ID: 97DD57ABB054ABC3BB9AE271EBB067D9
Requests: 1 HTTP requests in this frame

Frame: https://ca.clcknads.pro/v2/a/ban/iframe/31826
Frame ID: ED11D9AB1797993CF3651DABD82506A3
Requests: 1 HTTP requests in this frame

Frame: https://ca.clcknads.pro/v2/a/ban/iframe/31826
Frame ID: 2D282A94EBB043010EB00CDB7E14583B
Requests: 1 HTTP requests in this frame

Screenshot


Detected technologies

Overall confidence: 100%
Detected patterns
  • html /<link rel=["']stylesheet["'] [^>]+wp-(?:content|includes)/i
  • script /\/wp-includes\//i
  • meta generator /WordPress( [\d.]+)?/i

Overall confidence: 100%
Detected patterns
  • html /<link rel=["']stylesheet["'] [^>]+wp-(?:content|includes)/i
  • script /\/wp-includes\//i
  • meta generator /WordPress( [\d.]+)?/i

Overall confidence: 100%
Detected patterns
  • html /<!-- This site is optimized with the Yoast/i

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

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

Overall confidence: 100%
Detected patterns
  • script /jquery.*\.js/i
  • env /^jQuery$/i

Page Statistics

172
Requests

97 %
HTTPS

0 %
IPv6

13
Domains

14
Subdomains

12
IPs

5
Countries

6037 kB
Transfer

6872 kB
Size

0
Cookies

Redirected requests

There were HTTP redirect chains for the following requests:

172 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
topvideosgay.com/
129 KB
25 KB
Document
General
Full URL
https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
e559e02469343ffc7c1d8c022c76913ea64122224cd8c0974985a6c121cfc9fe

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:47 GMT
Vary
User-Agent,Accept-Encoding
Content-Encoding
gzip
Content-Length
25005
Content-Type
text/html; charset=UTF-8
X-Varnish
816123039
Age
0
X-Cache
MISS
Accept-Ranges
bytes
Connection
keep-alive
style.min.css
topvideosgay.com/wp-includes/css/dist/block-library/
25 KB
4 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-includes/css/dist/block-library/style.min.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
a72261a5191d1485620242b7d3b735501757aef23dedc6d27c84919af838e756

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:48 GMT
Content-Encoding
gzip
Last-Modified
Fri, 22 Feb 2019 05:33:19 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221399
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
4258
styles.css
topvideosgay.com/wp-content/plugins/contact-form-7/includes/css/
2 KB
947 B
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3ad2fcb328295f1199d593adaba909f3eea790f695554ac3c1da7aa009fc0e0d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:48 GMT
Content-Encoding
gzip
Last-Modified
Wed, 19 Dec 2018 05:32:41 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221401
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
651
yop-poll-public.css
topvideosgay.com/wp-content/plugins/yop-poll/public/assets/css/
155 KB
21 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/plugins/yop-poll/public/assets/css/yop-poll-public.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
46271c7c9af2bceb2efecdebc8a1dadaf731676c3d62d6ac40d3cd161f21c933

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Mon, 11 Mar 2019 17:33:05 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221405
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
21586
style.css
topvideosgay.com/wp-content/themes/novavideo/
32 KB
6 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/style.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3dc275e91f490d02f78ebf9e0f15f6bc969d5637ae08eeaf3b16f73ef8d446ac

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 22:53:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856257
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
5540
dark.css
topvideosgay.com/wp-content/themes/novavideo/css/
12 KB
2 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/dark.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
0f615301fb59730bd46bd577607e838893cbead32623e60fba1666f1864afa80

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816287410
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
1918
large.php
topvideosgay.com/wp-content/themes/novavideo/css/
5 KB
1 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/large.php?responsive=yes&ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
7f15eb340b57980cd860fa349814e89218c58152a7266a912c0adc48ad90dc45

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816287412
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
973
right.css
topvideosgay.com/wp-content/themes/novavideo/css/
297 B
391 B
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/right.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
80eef745dab7ff3d20b69a2c6ca427872f5bbeab37531f5a78525e6bbd4f437d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856259
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
96
horizontal.php
topvideosgay.com/wp-content/themes/novavideo/css/
2 KB
691 B
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/horizontal.php?responsive=yes&ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
fe42ad0576f09b8070146e710f436daa22f2c4bafe8d39c451465787b6f78c37

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856261
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
441
colors.php
topvideosgay.com/wp-content/themes/novavideo/css/
6 KB
1 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/colors.php?color=bd1515&ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c5430150cbd5e229308632000d2f4a0968fc5f7dab3de82d4f14fdbfdd148a3c

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221413
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
900
jquery.bxslider.css
topvideosgay.com/wp-content/themes/novavideo/css/
4 KB
1 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/jquery.bxslider.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
05bb935526415a3e83cb0d444d3ed5d857b646c713b69de95f7d2a02fc4aacf2

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856264
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
1233
darkdzplus.css
topvideosgay.com/wp-content/themes/novavideo/css/
15 KB
2 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
375bcb14eab8cd5dcb820ccdbf1d92840e67c4c6ffe9d714973bed4db6d11cac

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221416
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
2148
responsive.css
topvideosgay.com/wp-content/themes/novavideo/css/
19 KB
3 KB
Stylesheet
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/css/responsive.css?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b9a16d49bfd6b55a0763875fa531f6edfec7449b39dc7a736e0e5e7cb659e24e

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:49 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856267
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
text/css
Content-Length
2533
jquery.js
topvideosgay.com/wp-includes/js/jquery/
95 KB
33 KB
Script
General
Full URL
https://topvideosgay.com/wp-includes/js/jquery/jquery.js?ver=1.12.4
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
fa055f2f7c5b735dbbb71954f434aed79925bc00ff2ffbc3ecfc4a790689a723

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Fri, 22 Feb 2019 05:33:19 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221420
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
33766
jquery-migrate.min.js
topvideosgay.com/wp-includes/js/jquery/
10 KB
4 KB
Script
General
Full URL
https://topvideosgay.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
48eb8b500ae6a38617b5738d2b3faec481922a7782246e31d2755c034a45cd5d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Tue, 21 Jun 2016 19:35:56 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856269
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
4014
yop-poll-public.min.js
topvideosgay.com/wp-content/plugins/yop-poll/public/assets/js/
241 KB
69 KB
Script
General
Full URL
https://topvideosgay.com/wp-content/plugins/yop-poll/public/assets/js/yop-poll-public.min.js?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
6c8cea0b739c1de00ba05780d5278c7ca6aaf65ff7eefd8a2de362b38f4814e7

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Mon, 11 Mar 2019 17:33:05 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816287417
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
js
ca.clcknads.pro/v1/a/25946/
22 KB
7 KB
Script
General
Full URL
https://ca.clcknads.pro/v1/a/25946/js
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e9cd4737511779045cc550c0a92d443d09edf4c7a5bfda0add6f4db5bd83de30

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:51 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
access-control-allow-origin
*
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
status
200
access-control-max-age
86400
access-control-allow-credentials
true
1b3e9c6d73754f311cf5057b0b8596a8.js
muqson0kgr.com/1b/3e/9c/
0
0
Script
General
Full URL
https://muqson0kgr.com/1b/3e/9c/1b3e9c6d73754f311cf5057b0b8596a8.js
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
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
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Access-Control-Allow-Origin
*
Date
Wed, 10 Apr 2019 15:02:19 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
popunder1000.js
ads.exosrv.com/
84 KB
31 KB
Script
General
Full URL
https://ads.exosrv.com/popunder1000.js
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.216.42 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
map2.hwcdn.net
Software
/
Resource Hash
280b7d92b32d2596f1108d1f7c220ffd046c59806a41d9c3f52fc0f053e83e2b

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Content-Encoding
gzip
X-HW
1554908571.dop002.pa1.t,1554908571.cds027.pa1.shn,1554908571.dop002.pa1.t,1554908571.cds035.pa1.c
Content-Type
text/javascript;charset=UTF-8
Cache-Control
max-age=10800
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
31616
26291
ca.clcknads.pro/v2/a/pop/js/
87 KB
37 KB
Script
General
Full URL
https://ca.clcknads.pro/v2/a/pop/js/26291
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
9682359ed37014b2c487ffbdee6006850b76f0f7d22929b5607d1067c6b04028

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:51 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
access-control-allow-origin
*
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
status
200
access-control-max-age
86400
access-control-allow-credentials
true
pop.js
cdn.popcash.net/
68 KB
28 KB
Script
General
Full URL
https://cdn.popcash.net/pop.js
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
94.31.29.128 , United Kingdom, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
94.31.29.128.IPYX-077437-ZYO.above.net
Software
NetDNA-cache/2.2 /
Resource Hash
4ae93492d1b69e7ac955ba05d9763b08ee68981baf5c03344b7df6eccd54adf7

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:56 GMT
content-encoding
gzip
last-modified
Fri, 08 Mar 2019 14:18:39 GMT
server
NetDNA-cache/2.2
etag
W/"5c8279bf-10e0d"
vary
Accept-Encoding
x-cache
HIT
content-type
application/javascript
status
200
cache-control
max-age=86400
cf-ray
4c3cc52a9ee5279e-FRA
expires
Thu, 11 Apr 2019 15:02:56 GMT
logotopvideosgay.png
topvideosgay.com/wp-content/uploads/
31 KB
31 KB
Image
General
Full URL
http://topvideosgay.com/wp-content/uploads/logotopvideosgay.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
ff22241a762849137f0dbe39997ec50181697864093fa7258369f310f8cbb988

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:45 GMT
Last-Modified
Wed, 09 Nov 2016 16:45:05 GMT
Age
9
Vary
User-Agent, Accept-Encoding
X-Cache
HIT
X-Varnish
818808864 820249138
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
Content-Length
31764
X-Cache-Hits
1
Andre-Donovan-Pounds-Alexander-Volkovs-Rock-Hard-Ass-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
10 KB
10 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Andre-Donovan-Pounds-Alexander-Volkovs-Rock-Hard-Ass-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
ad52b096db52c299fd008533308fdcc872346bbdf688f3ed602f80073845d0a2

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 12:46:44 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816221432
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Top-Of-Your-Game-%E2%80%93-Damien-Stone-Matt-Wellington-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Top-Of-Your-Game-%E2%80%93-Damien-Stone-Matt-Wellington-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f18eb8145ebfb6b75cceac4bb183e8388c941ea03178ccf00056d9854e8270fb

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 11:48:56 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816123046
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Run-Me-My-Bag-%E2%80%93-Kash-Dinero-Fame-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Run-Me-My-Bag-%E2%80%93-Kash-Dinero-Fame-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
6dba0361270c03225889148e46c8c56bda2d39e9c236c576e0da068d1142c699

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 11:44:42 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819954710
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Marcos-Piovesan-Tom-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Marcos-Piovesan-Tom-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
2c2b9503bcd8c0ab9031c8b887b05fb938aedd5c6cd252a24fb95310480ce6e4

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 11:35:56 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819954712
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Bareback-Muscle-Buddies-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Bareback-Muscle-Buddies-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
75cf0ecd6f80117c1c62d3bc398adf1a4f8d94d0b4a8f2e0315013b86fca8009

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 11:29:46 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819954714
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Muscle-Bear-Three-Way-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Muscle-Bear-Three-Way-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
25501d815c791dd76d7e9aeb04cabeaf15fd1f74e7604d72c0c7e8c757c1c1f7

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 11:21:53 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816221438
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Raw-Lockup-Part-1-%E2%80%93-Ryan-Bones-Shawn-Assmore-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
6 KB
6 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Raw-Lockup-Part-1-%E2%80%93-Ryan-Bones-Shawn-Assmore-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
2f721b10487ccdc22afe1a9f7a1ea514d89d7d97e5a38b170ecb6f45e5ba2be9

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Tue, 09 Apr 2019 11:11:36 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816123049
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Hole-destroyed-Koldo-Goran-and-Carlos-Fontana-1-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Hole-destroyed-Koldo-Goran-and-Carlos-Fontana-1-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
505814e2238da1d0f592258ac7b91a95496aa6dec75d869597c83c59d16a19da

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Last-Modified
Mon, 08 Apr 2019 13:16:50 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161056
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Cutler-X-Nate-Grimes-Sirock12-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Cutler-X-Nate-Grimes-Sirock12-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
970b67749fc0ee1e097dc404f42fbb7b125f9f75441280b1dff8893443deffb6

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 12:57:09 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161058
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Quentin-Gainz-Ivan-James-Zack-Matthews-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Quentin-Gainz-Ivan-James-Zack-Matthews-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
42777cbfda9ecfd29c88befea3e9629d2316e826fae4823b000392bdfe2e0b40

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 12:31:30 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161060
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
The-Pledge-%E2%80%93-Devin-Franco-Trevor-Miller-Nic-Sahara-Zak-Bishop-Colton-Reece-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/The-Pledge-%E2%80%93-Devin-Franco-Trevor-Miller-Nic-Sahara-Zak-Bishop-Colton-Reece-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
a2351a105d3b5ca84562f46532520065307105ad268b34d17fea0d215a9274d5

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 12:27:42 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161062
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Big-Dick-Triple-Threat-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Big-Dick-Triple-Threat-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f0404a7de6407508f6d9e72e5765dfa446f53c0b3eac917a335b2c34ba9d54ca

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 13:58:55 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816123058
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Colby-Chambers-Mickey-Knox-Ty-Mitchell-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Colby-Chambers-Mickey-Knox-Ty-Mitchell-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
a00b8d986153332e77f25d07d753f46ea5b1743d4e6836ddbe66f9848414530e

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 12:24:06 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816123060
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Braziln-That-Ass-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
11 KB
11 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Braziln-That-Ass-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f7c0e7efda7db220ae4ff7c67ab68fadfe029ea9edc1ff52bbcc12a0ef0f2c21

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 13:53:59 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161064
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Renan-Dotadao-Jhon-Alvez-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Renan-Dotadao-Jhon-Alvez-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f75960e4cdb138c4ed736a19e80bc51731f8fd76baf8f01864e76ac588e3b971

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Mon, 08 Apr 2019 12:19:36 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816221448
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Truck-Fuck-%E2%80%93-Jacob-Hansen-Ashtin-Bates-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Truck-Fuck-%E2%80%93-Jacob-Hansen-Ashtin-Bates-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
6bcd1bf9eb557ca4911a55e60bb341c880b89d12f0cbccbbfebbcd1884bbabc8

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Sun, 07 Apr 2019 18:09:41 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161069
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Blair-Mason-Kay-Loriley-%E2%80%93-Horny-Boys-Biology-Lessons-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Blair-Mason-Kay-Loriley-%E2%80%93-Horny-Boys-Biology-Lessons-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c19abe7fcc56ac4c2337c854c2ac3b0542733d11516121c1c765b2af9341dd93

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:52 GMT
Last-Modified
Sun, 07 Apr 2019 18:03:27 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856293
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Dylan-James-Wears-Out-Ian-Greenes-Hole-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Dylan-James-Wears-Out-Ian-Greenes-Hole-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
8fed33eb2d4752571d1c699247d6f8b88615efbec229c409c51d1e27ff424f7d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 17:00:01 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287441
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Dick-Swap-Part-2-%E2%80%93-Alex-Mecum-Colton-Grey-Jeremy-Spreadums-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Dick-Swap-Part-2-%E2%80%93-Alex-Mecum-Colton-Grey-Jeremy-Spreadums-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
89ea27819ba2c83b1b29e997ac834e3a805da71c8cfc984f623998baa23e1ec4

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 06:39:37 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287443
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
1-Fan-%E2%80%93-Kayden-Gray-Damon-Heart-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/1-Fan-%E2%80%93-Kayden-Gray-Damon-Heart-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3eeaef0f98b062323cfb70a09834990f8d9d27578baed4862d4db50c7d8431d9

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 06:34:02 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816221452
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Erick-Richard-Vallence-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Erick-Richard-Vallence-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
0126f0e4c87246beacfdeda7a696737b817914e73de6355aabf705727e23916c

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 17:08:31 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161077
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Teen-Rebellion-%E2%80%93-Taylor-Coleman-Chase-Williams-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Teen-Rebellion-%E2%80%93-Taylor-Coleman-Chase-Williams-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
0f89cbd3cbac13208d956b80c8c4acf404e81d4e41492cb72504e5b1fdfe648f

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 06:04:09 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287445
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Nobody-Like-You-%E2%80%93-Gianni-Maggio-Malek-Tobias-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Nobody-Like-You-%E2%80%93-Gianni-Maggio-Malek-Tobias-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
54ed759c1d15737ed7e7e5f21efb7dc8fef9477a67567ff5e04a178a84c4eeae

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 03:47:08 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287447
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
PORN-PAYS-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/PORN-PAYS-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
357392c9f303a103c649f5d26066c540a4ff268a036b220214daf9d5b159a070

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 02:18:58 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287449
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Hung-boy-gets-his-tight-fuckhole-filled-%E2%80%93-Jonah-Winter-Jack-Flynn-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
6 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Hung-boy-gets-his-tight-fuckhole-filled-%E2%80%93-Jonah-Winter-Jack-Flynn-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
23cef62b4d22358b4be7fe1c244403b429eb827b0441ee9518a1ceabc6664e27

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:53 GMT
Last-Modified
Sun, 07 Apr 2019 02:05:22 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347510
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Great-Sucking-in-a-Pizzeria-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Great-Sucking-in-a-Pizzeria-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3167bba5e8a9c4cb319c8a5612c69e2108b3c2741d17f19cd77fd9439147e370

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 20:02:23 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347512
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Practical-Joke-Goes-Right-%E2%80%93-Bar-Addison-Ty-Mitchell-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Practical-Joke-Goes-Right-%E2%80%93-Bar-Addison-Ty-Mitchell-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
72e3175ed919fa973ca399ac1fec15adbf44090ac34e713696189264a24959f9

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 19:53:05 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347514
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Common-Room-Climax-%E2%80%93-Alec-Loob-Ron-Negba-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Common-Room-Climax-%E2%80%93-Alec-Loob-Ron-Negba-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
4771f81eecf787f9ba3bbdff48322227a5bb1e5a8c04e5202cbb4619daebe66b

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 19:36:13 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856298
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Chamba-Dantonio-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Chamba-Dantonio-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
851f740a54a8f5ded32cb35dee5225f57eb4d4d7049b188a067d165de2ed661d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 19:29:41 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347519
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Manuels-DeBirthday-Bang-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Manuels-DeBirthday-Bang-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
572cbc2ec97e892812e7bda49d2a3e26ed8b6c5f6fecbc4eec349ad6d48a4ff1

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 19:08:51 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161084
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
The-Filling-In-A-Bareback-Sandwich-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/The-Filling-In-A-Bareback-Sandwich-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b4d5cef51c33c3ced0cfedc6302409a038bfd6b44a58fe9841834c78108c3477

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 18:59:50 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161086
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Allen-King-%E2%80%93-City-Boys-%E2%80%93-La-Venganza-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Allen-King-%E2%80%93-City-Boys-%E2%80%93-La-Venganza-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3d7fa73a011ea4369fef7212339e0f269d2f728ce90c362017ae6d44ebe6d2b1

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 18:55:59 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161088
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Big-Wet-Cock-%E2%80%93-Scott-Riley-Pheonix-Fellington-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Big-Wet-Cock-%E2%80%93-Scott-Riley-Pheonix-Fellington-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
79c17381aebaff63b590efe32212d74ec5dfcadca2d456aaaee6037e4ba836ac

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:54 GMT
Last-Modified
Sat, 06 Apr 2019 18:50:16 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287454
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Piece-Of-Work-%E2%80%93-Grant-Ryan-Johnny-Rapid-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Piece-Of-Work-%E2%80%93-Grant-Ryan-Johnny-Rapid-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
dd9b1a1fbf2052d4562863e29fe2c331113141010ead0f24da9b2901fb0fecd7

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Sat, 06 Apr 2019 18:45:58 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287456
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Grueso-Marc-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Grueso-Marc-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
6e42decbe68e22827eb2717563487d27e6d3402e257f99e60022ed43ad107136

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Sat, 06 Apr 2019 18:41:54 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856301
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Ben-Masters-Clark-Davis-RAW-210x142.jpg
topvideosgay.com/wp-content/uploads/2019/04/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2019/04/Ben-Masters-Clark-Davis-RAW-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
676406406e1ffc6d4ca641b63ae4cec091ddb72cf2abc6121967a59a160522b0

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Sat, 06 Apr 2019 18:36:57 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287460
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Gay-Buds-%E2%80%93-Tim-Tomm-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/10/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/10/Gay-Buds-%E2%80%93-Tim-Tomm-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c16aff4532e217255b79b907235e18ae8f787ec2ac2cd2f94fbedcda2e6135ab

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Tue, 16 Oct 2018 03:03:46 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
811897919
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Cauke-For-FREE-%E2%80%93-Bruce-Beckham-Jason-Vario-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Cauke-For-FREE-%E2%80%93-Bruce-Beckham-Jason-Vario-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
34f55e972d9fcdb266a90f1053cbc397e62b987b85b4ea5076fab1d8abbde22c

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Tue, 22 Nov 2016 16:23:28 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287466
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Dallas-Steele-Hunter-Marx-%E2%80%93-Break-a-Sweat-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/05/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/05/Dallas-Steele-Hunter-Marx-%E2%80%93-Break-a-Sweat-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
0ee6d2be113c2a7a936eb87c5d8fef202a35ca96820333c25b51e44faea73087

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Sun, 21 May 2017 14:38:03 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
811897923
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Dudes-in-Public-34-Auto-Body-%E2%80%93-Aspen-Springs-Phoenix-Fellington-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/11/
8 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/11/Dudes-in-Public-34-Auto-Body-%E2%80%93-Aspen-Springs-Phoenix-Fellington-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b41a173cfa12a8f1d8aca3954f2bfedcd1484787ea2d7b2e1d3b3309e36f7c5f

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Fri, 23 Nov 2018 21:03:11 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877169
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Brayam-Roque-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/01/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/Brayam-Roque-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
7e9c06f22ce2addc779889638a499c031deeceee359f7cb2fb7fb7c35e52b430

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Sun, 22 Jan 2017 17:04:53 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
811897926
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Rocky-Feeds-Henry-A-Load-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/12/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/12/Rocky-Feeds-Henry-A-Load-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f5abc18992b03251e36568375a5c796dacc3f66f0085c7e07a03e348bac70ac4

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Thu, 22 Dec 2016 21:09:02 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
786548429
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Introducing-Aaron-%E2%80%93-Diego-Summers-Aaron-Blue-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/08/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/08/Introducing-Aaron-%E2%80%93-Diego-Summers-Aaron-Blue-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
d21ceb2df9679dce1089bbe7f76eede74bcd680af29fc84d3b014be9a13b0e88

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Mon, 27 Aug 2018 19:44:03 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347536
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Patrik-Snake-James-Font-Marshall-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/08/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/08/Patrik-Snake-James-Font-Marshall-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
95e6e7381e30ab148f6fb904cb994d99955ff6d5bff803be4d33c5c895f632a9

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Thu, 23 Aug 2018 15:52:04 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877175
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Ibrahim-Moreno-Alex-Kof-Javi-Velaros-Uncut-Flip-Fcking-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/12/
10 KB
10 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/12/Ibrahim-Moreno-Alex-Kof-Javi-Velaros-Uncut-Flip-Fcking-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b738edbb43db6a4cddd2a83118168f438f6280a3408e57b720a43901c4dd71ad

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Fri, 16 Dec 2016 10:17:40 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746061
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Milky-Breakfast-%E2%80%93-Carlos-Leao-Cesar-Paulino-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/07/
7 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/07/Milky-Breakfast-%E2%80%93-Carlos-Leao-Cesar-Paulino-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
d8d192d7e5f316b1b4c0291c43db452d8c8d465abfeb14e42a81bd5e673d9172

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Sun, 01 Jul 2018 11:26:38 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161097
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Alessandro-Haddad-Mateo-Drago-%E2%80%93-The-Layover-%E2%80%93-Scene-4-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/05/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/05/Alessandro-Haddad-Mateo-Drago-%E2%80%93-The-Layover-%E2%80%93-Scene-4-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3c4e9609608c25bcfdfdb378d5e263b2d884b38b47e13cd3616354f85fe57dd8

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Sun, 07 May 2017 19:01:34 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820281459
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t163-300x163.jpg
topvideosgay.com/wp-content/uploads/2016/02/
19 KB
20 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/02/t163-300x163.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
445ba863e1f7e1c1d36aeb2848d66254038683faddb102b9f2da8999f18b394e

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Sun, 24 Jul 2016 08:06:46 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161099
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Jonnathan-Thada-Reissue-Bareback-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/06/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/06/Jonnathan-Thada-Reissue-Bareback-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c2f0244e2a3c2ad621253054beffe8ef38c4efc9b645bc664239656a935586f7

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Sun, 11 Jun 2017 03:44:00 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820281462
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Real-Cam-Roman-and-Stefan.jpg
topvideosgay.com/wp-content/uploads/2016/09/
15 KB
16 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/09/Real-Cam-Roman-and-Stefan.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
e4b167008f5c65e93717d4074d8e39cc8a2eafc5581fd25d24ac9fbe359fc38e

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Thu, 29 Sep 2016 06:44:58 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161102
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Markie-More-Breaks-In-Chad-Piper-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/07/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/07/Markie-More-Breaks-In-Chad-Piper-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
a3107222899bb6470b97ee14d6fde0b16c6864e4261e97195b154afb0a4e7d8f

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Wed, 05 Jul 2017 09:11:52 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
786548436
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Bulge-211x300.jpg
topvideosgay.com/wp-content/uploads/2016/10/
26 KB
27 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Bulge-211x300.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
7daf41e4a4c1a3488d10933f7691f7a9c8aea7c51903d9c907a709e34f0c5d63

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Fri, 07 Oct 2016 09:20:59 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877183
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
bannerdvdporngay.jpg
topvideosgay.com/wp-content/uploads/2018/05/
89 KB
90 KB
Image
General
Full URL
http://topvideosgay.com/wp-content/uploads/2018/05/bannerdvdporngay.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
d3dcbf6928b470a865c5e33a3ac87be8f32f9fd182acab4880dcc83b6ae0eeb1

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:47 GMT
Last-Modified
Wed, 30 May 2018 08:26:38 GMT
Age
8
Vary
User-Agent, Accept-Encoding
X-Cache
HIT
X-Varnish
807965297 816353089
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Content-Length
91430
X-Cache-Hits
1
Gamer-Threesome-%E2%80%93-Tyler-Hill-Blake-Mitchell-Noah-White-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
8 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Gamer-Threesome-%E2%80%93-Tyler-Hill-Blake-Mitchell-Noah-White-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
19b22f663cbe58f420dd48ffe613fc7c1f06ca3ede79e242d5c59b3bab970705

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Tue, 29 Nov 2016 17:11:43 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
786548438
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Double-Dip-%E2%80%93-Marcel-Gassion-Rhys-Jagger-Hoyt-Kogan-Part-2-Bareback-300x169.jpg
topvideosgay.com/wp-content/uploads/2016/11/
11 KB
12 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Double-Dip-%E2%80%93-Marcel-Gassion-Rhys-Jagger-Hoyt-Kogan-Part-2-Bareback-300x169.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
855d8918f08eefd857e458caaea4c588b31079c742b83528438fd8560db0b37e

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Fri, 04 Nov 2016 11:08:33 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161106
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Bennett-Anthony-Charlie-Pattinson-Paul-Canon-300x200.jpg
topvideosgay.com/wp-content/uploads/2016/11/
12 KB
12 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Bennett-Anthony-Charlie-Pattinson-Paul-Canon-300x200.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
914c900bce0c66b436c171dcc245b7b9f479a9ff21cedc46ce8d97f2e6a80959

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Tue, 08 Nov 2016 19:39:09 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746072
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
LE5345345-300x168.jpg
topvideosgay.com/wp-content/uploads/2016/08/
16 KB
17 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/08/LE5345345-300x168.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
9b9d0d5577c99000cb1c34927e25077f2006597b3a9fc5acd8005cc065f7a953

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Mon, 29 Aug 2016 11:36:04 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161108
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Daddys-Day-%E2%80%93-Jake-Nobello-Jake-Washington-Manuel-Skye-Stig-Andersen-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/06/
6 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/06/Daddys-Day-%E2%80%93-Jake-Nobello-Jake-Washington-Manuel-Skye-Stig-Andersen-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
131aaddff348828cd45b111cd441c37c177d91a3288370db53c7743ecb7e103a

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Mon, 18 Jun 2018 11:38:04 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819757913
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
css
fonts.googleapis.com/
0
0

wp-emoji-release.min.js
topvideosgay.com/wp-includes/js/
12 KB
5 KB
Script
General
Full URL
https://topvideosgay.com/wp-includes/js/wp-emoji-release.min.js?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c533b791a8eef65604f15d20433506e1614c693eeba9df749e8a7677e43b466c

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Cookie
kmr9eE1=update
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Content-Encoding
gzip
Last-Modified
Fri, 22 Feb 2019 05:33:19 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816877189
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
4388
Cinesex-246-%E2%80%93-Lincoln-Arthur-Lucas-And-Iran-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/04/
6 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/04/Cinesex-246-%E2%80%93-Lincoln-Arthur-Lucas-And-Iran-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b80e43d2433c3c6f7a79df7d5bba8cddc02e0652c56b858b73e625a43535e2a8

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Fri, 28 Apr 2017 12:27:15 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156249
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
katter1-300x160.jpg
topvideosgay.com/wp-content/uploads/2016/08/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/08/katter1-300x160.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
33f1db32158c98dcc28ed35514335854cb65530e801fed6f83ca917128e74edb

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sat, 20 Aug 2016 06:04:17 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877191
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Jerry-Cabrera-Sebastian-Hook-Jason-Keys-300x169.jpg
topvideosgay.com/wp-content/uploads/2016/10/
15 KB
15 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Jerry-Cabrera-Sebastian-Hook-Jason-Keys-300x169.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
4cd45c74430b4bf07b807c36fb959824b13e29195485b59a5adec309e2e6d0b7

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sat, 29 Oct 2016 00:43:25 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347538
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
HS6756756-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/10/
6 KB
6 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/HS6756756-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
976ccd072498eca1757bec1c703c45cfc54d6da41c26b3d5af6088ff3e0aeb4c

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Fri, 27 Jan 2017 20:09:48 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156251
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Ray-Mannix-Tony-%E2%80%93-Super-Size-Me-13.jpg
topvideosgay.com/wp-content/uploads/2016/11/
25 KB
26 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Ray-Mannix-Tony-%E2%80%93-Super-Size-Me-13.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
867d7f4c4d017f078502fc51181cec8d09b7b468c630582c6ff01935049f06d6

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Fri, 04 Nov 2016 15:30:36 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287484
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Stretched-To-The-Max-%E2%80%93-Alex-Whale-Joel-Tamir-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/05/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/05/Stretched-To-The-Max-%E2%80%93-Alex-Whale-Joel-Tamir-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
71aee0db165e7e2804e4b4aa9839652efae3198f346e300e3bc8549f6f80ddba

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sun, 06 May 2018 02:46:20 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746076
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Introducing-Sean-Ford-%E2%80%93-Evan-Parker-Sean-Ford-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Introducing-Sean-Ford-%E2%80%93-Evan-Parker-Sean-Ford-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c85e926d692051017ed7ebdd414ae99aab6dfd06f001a06fc0962be53467f3c3

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Tue, 29 Nov 2016 17:01:44 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
815500624
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Joel-Birkin-Bobby-Noiret-300x169.jpg
topvideosgay.com/wp-content/uploads/2016/10/
11 KB
11 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Joel-Birkin-Bobby-Noiret-300x169.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3bcbe681d1f2ba745e729b786e9185c2599c267e97971ff4a34c475bf48e7dcf

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Fri, 28 Oct 2016 19:23:41 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287486
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Cooper-Steel-Nathan-Reed-%E2%80%93-Pool-Boys-Bareback-300x200.jpg
topvideosgay.com/wp-content/uploads/2016/11/
10 KB
10 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Cooper-Steel-Nathan-Reed-%E2%80%93-Pool-Boys-Bareback-300x200.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
9f65da64de7069c5d7096cfbe41dc7117f512b62cf4079cd8df5b07f47d00ca6

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Tue, 08 Nov 2016 18:14:20 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
815500626
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Scandal-in-the-Vatican-2-212x300.jpg
topvideosgay.com/wp-content/uploads/2016/10/
56 KB
56 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Scandal-in-the-Vatican-2-212x300.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
ed8e345d361e7df99c3053926c891d8a667804c978b563cbc00a5c16167f8701

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Thu, 06 Oct 2016 13:53:20 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287488
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
American-Lovers-Part-Two-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/10/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/American-Lovers-Part-Two-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
8a8e2611bd39779deaee7023630570019cc1e3f3687f494e34292572cb202067

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sun, 26 Mar 2017 11:22:18 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819757920
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Folsom-Prison-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/10/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Folsom-Prison-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
2d93239d33004fce822d2d30f6aab971a135b26ae953ddeaace940c756529f3f

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sun, 26 Mar 2017 11:25:24 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347543
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Lets-Play-With-David-Sky-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
10 KB
11 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Lets-Play-With-David-Sky-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
92beb215065d0a1954c6565cdb5d35d9401dc6cb9572b2870eaeb0b93582d348

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sun, 26 Mar 2017 11:29:24 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
815500629
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
The-Flash-A-Gay-XXX-Parody-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/01/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/The-Flash-A-Gay-XXX-Parody-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
9f109e7d0eca28363efb08e8d136d30816d1ac9eff1dc9c231a8a674f553999a

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:57 GMT
Last-Modified
Sun, 22 Jan 2017 20:25:52 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347545
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Soldier-Boy-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
12 KB
12 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Soldier-Boy-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
71e424133e5716034dc23a61a04c8be2e0a2b0e27152600cc4109b4941755df4

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 10 Nov 2016 11:10:42 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819757924
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Play-Hard-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/10/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Play-Hard-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
710aae4d5532319f1781447a49b6fb6b81923327e3411dd371aa95e1b2918cc6

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Sun, 26 Mar 2017 11:27:22 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347547
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Bareback-Hole-Hunters-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
11 KB
11 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Bareback-Hole-Hunters-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
daed9cc8f9e8fe526fbcd91aa1e8e128451866937240b35a048b9a064d6189dd

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Sun, 26 Mar 2017 11:31:23 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287492
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Katter-and-Dom-02-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/01/
18 KB
18 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/01/Katter-and-Dom-02-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
3d1562988fe4a5176508b3bf432d30020b2d1c6fe5d687786f921d44dd3115b6

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Fri, 27 Jan 2017 18:58:28 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156255
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Kayden-Gray-Lucas-Phelps-%E2%80%93-Golden-Opportunity-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/10/
6 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/10/Kayden-Gray-Lucas-Phelps-%E2%80%93-Golden-Opportunity-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b252c036470fc8f6992af210d3f7a5a8a2b37c501bf94dfa056c36df496b2447

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Fri, 27 Jan 2017 19:01:43 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287494
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
NEW-Model-Brady-Corbin-FUCKS-Derek-Jones-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/NEW-Model-Brady-Corbin-FUCKS-Derek-Jones-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
69e9915d572e9fc37a09ff76ddbf16734d53b5b6f0c06f505cad6fb129c5b41d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 10 Nov 2016 19:35:06 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156257
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Scared-Stiff-%E2%80%93-Scene-1-Jack-Hunter-Seth-Santoro-300x199.jpg
topvideosgay.com/wp-content/uploads/2016/11/
14 KB
15 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Scared-Stiff-%E2%80%93-Scene-1-Jack-Hunter-Seth-Santoro-300x199.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
2ace893ec4357c03198547aa436496bff594dd8a946cbc21d7c36c21775dd536

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Wed, 02 Nov 2016 10:08:19 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161117
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Brandon-Wilde-Damon-Andros-%E2%80%93-Behave-Yourself-300x170.jpg
topvideosgay.com/wp-content/uploads/2016/11/
10 KB
10 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Brandon-Wilde-Damon-Andros-%E2%80%93-Behave-Yourself-300x170.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
1082b11ac754f4991c0839cbe4e101fed6120766ba7c71c797e96673ecd15409

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Fri, 04 Nov 2016 11:00:25 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746081
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Raul-Zulu-Lucas-Angel-210x142.jpg
topvideosgay.com/wp-content/uploads/2018/06/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2018/06/Raul-Zulu-Lucas-Angel-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
34821c06cbdaebd236702b7d624dab7aeedc21c76a83ff404f980bf38e7df10d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Mon, 18 Jun 2018 10:59:23 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746083
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Esteban-Orive-Xavier-Arroyo-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/11/
7 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/11/Esteban-Orive-Xavier-Arroyo-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
054637cd675e1c3e9172263e3a49d64a4ee7c4ec3394705d311b64871d3c4e03

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 10 Nov 2016 19:43:52 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287498
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Elder-Holland-And-Elder-Oaks-Bareback-210x142.jpg
topvideosgay.com/wp-content/uploads/2016/12/
6 KB
7 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/12/Elder-Holland-And-Elder-Oaks-Bareback-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
0130b1486779cb9ce96db5a7f7ff2d7e137aa2ae53a83e6097ca0a2be1f62cc2

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 22 Dec 2016 15:31:49 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746085
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
bannerjapangaymovie.png
topvideosgay.com/wp-content/uploads/2018/04/
99 KB
99 KB
Image
General
Full URL
http://topvideosgay.com/wp-content/uploads/2018/04/bannerjapangaymovie.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
e6c4d569459883e9a075ca0fb9a7266b1c6baa94bfb452c55747cf06d3dba010

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:47 GMT
Last-Modified
Wed, 18 Apr 2018 10:55:34 GMT
Age
8
Vary
User-Agent, Accept-Encoding
X-Cache
HIT
X-Varnish
819561351 820216341
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
Content-Length
101089
X-Cache-Hits
1
Baby-bot-th%C3%ADch-ch%E1%BB%8Bch-210x142.png
topvideosgay.com/wp-content/uploads/2017/01/
39 KB
39 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/Baby-bot-th%C3%ADch-ch%E1%BB%8Bch-210x142.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
213611cfc81504fdeb5cb2b81c9922b97b9cb4606ee27326c6b0e0a97f9ec26a

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 26 Jan 2017 21:15:08 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816287500
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
Sex-gay-China-t%E1%BB%B1-quay-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/01/
8 KB
8 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/Sex-gay-China-t%E1%BB%B1-quay-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
5bad39e86c1ae96a079963b880d591cf5cb639042df35963153e9d13bc35eb16

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Tue, 24 Jan 2017 03:17:09 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
815500634
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Ch%C6%A1i-em-s%E1%BB%8Bp-xanh-%C4%91%E1%BA%B9p-trai-trong-kh%C3%A1ch-s%E1%BA%A1n-HD-210x142.png
topvideosgay.com/wp-content/uploads/2017/01/
55 KB
56 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/Ch%C6%A1i-em-s%E1%BB%8Bp-xanh-%C4%91%E1%BA%B9p-trai-trong-kh%C3%A1ch-s%E1%BA%A1n-HD-210x142.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
bb61e2747d25fe8bf15e2701608d7c4ecacf76b033bca007ecb8e278baca7edb

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Tue, 24 Jan 2017 15:17:12 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856314
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
Threesome-em-bot-cute-d%C3%A2m-t%E1%BA%B7c-c%E1%BB%B1c-s%C6%B0%E1%BB%9Bng-HD-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/01/
9 KB
9 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/Threesome-em-bot-cute-d%C3%A2m-t%E1%BA%B7c-c%E1%BB%B1c-s%C6%B0%E1%BB%9Bng-HD-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
a39d684b5de426441e5f9deca9fe859561feb33ba175a87168de7363921775d7

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Tue, 24 Jan 2017 15:35:35 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
786548442
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Trai-%C4%91%E1%BA%B9p-b%E1%BB%8B-gangbang-r%E1%BB%93i-b%E1%BA%A1o-d%C3%A2m-210x142.png
topvideosgay.com/wp-content/uploads/2017/04/
48 KB
48 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/04/Trai-%C4%91%E1%BA%B9p-b%E1%BB%8B-gangbang-r%E1%BB%93i-b%E1%BA%A1o-d%C3%A2m-210x142.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b7369b7242463eb319132f76eeec8200a3d115c2f0c93457542641775fe6364b

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Sun, 23 Apr 2017 03:31:05 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856316
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
C%E1%BA%ADu-h%E1%BB%8Dc-tr%C3%B2-d%E1%BB%85-th%C6%B0%C6%A1ng-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/01/
12 KB
13 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/C%E1%BA%ADu-h%E1%BB%8Dc-tr%C3%B2-d%E1%BB%85-th%C6%B0%C6%A1ng-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
ee0fe9d919baaca19944e0a04e6608cf22fba0e676b5c3bd40f8e357c06b85d3

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Wed, 25 Jan 2017 02:42:42 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
811897933
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
Ch%E1%BB%8Bch-em-bot-gym-body-c%E1%BB%B1c-chu%E1%BA%A9n-t%C3%AA-t%C3%A1i-HD-210x142.jpg
topvideosgay.com/wp-content/uploads/2017/01/
5 KB
6 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/Ch%E1%BB%8Bch-em-bot-gym-body-c%E1%BB%B1c-chu%E1%BA%A9n-t%C3%AA-t%C3%A1i-HD-210x142.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b0fd25270f3b75a76f235de73c8d7ceb7b446828c960bfce63baac79737609a3

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Tue, 24 Jan 2017 03:37:29 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877196
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
%C4%90%E1%BB%8Bt-em-t%C3%B3c-v%C3%A0ng-cute-d%C3%A2m-210x142.png
topvideosgay.com/wp-content/uploads/2017/01/
39 KB
39 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2017/01/%C4%90%E1%BB%8Bt-em-t%C3%B3c-v%C3%A0ng-cute-d%C3%A2m-210x142.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
65c2030e856e54c3a4fd65bcc14a77fd239a8c27b3a8744097eefad9e07ad674

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Tue, 24 Jan 2017 15:41:57 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
811897935
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
t206-300x159.jpg
topvideosgay.com/wp-content/uploads/2016/07/
21 KB
21 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t206-300x159.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
7a00578d24062de4a0a0fc43e1241148e5c7e6a1ffa0d0266c037565b628cbfe

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Sun, 24 Jul 2016 16:03:44 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877198
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t210-300x160.jpg
topvideosgay.com/wp-content/uploads/2016/07/
21 KB
21 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t210-300x160.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
ff2370c7574369ed8f00376c44b99dc6d28d1ed259d2f78accdef53dde791ee7

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Sun, 24 Jul 2016 16:29:09 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161121
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t207-300x164.jpg
topvideosgay.com/wp-content/uploads/2016/07/
22 KB
23 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t207-300x164.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
282696b72ea737361007be0c2b30dd3eb0a8e3bfddc0090b94dae201b7f51d5f

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Sun, 24 Jul 2016 16:11:53 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156264
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t212-300x164.jpg
topvideosgay.com/wp-content/uploads/2016/07/
24 KB
24 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t212-300x164.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
5895fb0724b2e0d5a107226296f0ba75392db0e6be4b3604cfd89e97bc2f28cb

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Sun, 24 Jul 2016 16:41:24 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161123
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
UKHJAllen-300x200.jpg
topvideosgay.com/wp-content/uploads/2016/09/
17 KB
17 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/09/UKHJAllen-300x200.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
2ad6ae45b70ef86bba1ab7cc75a4eaca3804110c1aed69b4fa8127e3bbf99f22

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Tue, 27 Sep 2016 09:05:38 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156266
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t209-300x162.jpg
topvideosgay.com/wp-content/uploads/2016/07/
23 KB
24 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t209-300x162.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
dbc55294f8901bb30d47741945bb9f80e9b88e5e2fe3213f886ede39eecd16fb

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Sun, 24 Jul 2016 16:22:08 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856322
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t208-300x159.jpg
topvideosgay.com/wp-content/uploads/2016/07/
19 KB
20 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t208-300x159.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
ec971fe51590c502508f8fe300e06d0971a9e7e0edac7a36d45beb6e9536d55c

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Sun, 24 Jul 2016 16:16:38 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746092
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
t211-300x157.jpg
topvideosgay.com/wp-content/uploads/2016/07/
20 KB
20 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/uploads/2016/07/t211-300x157.jpg
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f686ce17ea85497c51b2f137878eac4a3da051e0c2c193d52d0108fd6b641e08

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Sun, 24 Jul 2016 16:36:11 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161125
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/jpeg
selectnav.js
topvideosgay.com/wp-content/themes/novavideo/scripts/
4 KB
2 KB
Script
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/scripts/selectnav.js?ver=1.0
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
887c9a2469a90168d33808cdcb043b8d1c68d7f69ffd5a103094800a55a2297d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816287422
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
1454
main.js
topvideosgay.com/wp-content/themes/novavideo/scripts/
4 KB
1 KB
Script
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/scripts/main.js?ver=1.0
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
212a2be8ddb6ea35e2b2470ed2e96e47e4ba6a17d29fe9e943a83a4e5f99e0e5

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
819856274
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
1115
jQuery.ba-resize.min.js
topvideosgay.com/wp-content/themes/novavideo/scripts/
1 KB
930 B
Script
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/scripts/jQuery.ba-resize.min.js?ver=1.0
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
6f4689459ef10358f35d5849a47e2f623375803c7764719f5a205f4b3eaa0315

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816287428
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
618
scrollToTop.min.js
topvideosgay.com/wp-content/themes/novavideo/scripts/
1 KB
906 B
Script
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/scripts/scrollToTop.min.js?ver=1.0
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
6e1f112b8fed2812ee2a58aca72310a638505ae402cb196a69aed039d92e82ef

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816287430
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
594
jquery.bxslider.min.js
topvideosgay.com/wp-content/themes/novavideo/scripts/
19 KB
5 KB
Script
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/scripts/jquery.bxslider.min.js?ver=1.0
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
92cc37ab95008b66bf2cfb65f472a2923ed2d182e0026cb23418b0ae049cf081

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221426
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
5194
scripts.js
topvideosgay.com/wp-content/plugins/contact-form-7/includes/js/
14 KB
4 KB
Script
General
Full URL
https://topvideosgay.com/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b7e17926b30342edecee8b3a93029ac51462e2b479277d8e077ba57173eb1900

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:50 GMT
Content-Encoding
gzip
Last-Modified
Wed, 19 Dec 2018 05:32:41 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221428
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
3993
wp-embed.min.js
topvideosgay.com/wp-includes/js/
1 KB
1 KB
Script
General
Full URL
https://topvideosgay.com/wp-includes/js/wp-embed.min.js?ver=5.1.1
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
2152557cac69e2bd7d6debef5037a9f554f9209cc305b8141b3329acb10c42b7

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
https://topvideosgay.com/
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 10 Apr 2019 15:02:51 GMT
Content-Encoding
gzip
Last-Modified
Fri, 07 Dec 2018 05:32:55 GMT
Age
0
Vary
User-Agent,Accept-Encoding
X-Cache
MISS
X-Varnish
816221430
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
application/x-javascript
Content-Length
753
blank
acrmbjkk6qc5utby.pro/
0
183 B
XHR
General
Full URL
https://acrmbjkk6qc5utby.pro/blank?adnet=&adzone=&act=ads_
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , 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
https://topvideosgay.com/
Origin
https://topvideosgay.com

Response headers

date
Wed, 10 Apr 2019 15:02:51 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
https://topvideosgay.com
access-control-allow-credentials
true
content-length
0
pop.js
c1.popads.net/
0
0

blank
acrmbjkk6qc5utby.pro/
0
183 B
XHR
General
Full URL
https://acrmbjkk6qc5utby.pro/blank?adnet=&adzone=&act=ads_
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v2/a/pop/js/26291
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , 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
https://topvideosgay.com/
Origin
https://topvideosgay.com

Response headers

date
Wed, 10 Apr 2019 15:02:52 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
https://topvideosgay.com
access-control-allow-credentials
true
content-length
0
znWaa3gu
dcba.popcash.net/
0
117 B
XHR
General
Full URL
https://dcba.popcash.net/znWaa3gu
Requested by
Host: cdn.popcash.net
URL: https://cdn.popcash.net/pop.js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
34.196.182.1 Ashburn, United States, ASN14618 (AMAZON-AES - Amazon.com, Inc., US),
Reverse DNS
ec2-34-196-182-1.compute-1.amazonaws.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

status
204
pragma
no-cache
date
Wed, 10 Apr 2019 15:02:56 GMT
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
expires
0
979895
ad.a-ads.com/ Frame 4578
0
0
Document
General
Full URL
https://ad.a-ads.com/979895?size=300x250
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
85.10.200.158 Mörfelden-walldorf, Germany, ASN24940 (HETZNER-AS, DE),
Reverse DNS
85-10-200-158.clients.your-server.de
Software
nginx/1.14.0 (Ubuntu) / Phusion Passenger
Resource Hash
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

Host
ad.a-ads.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
https://topvideosgay.com/
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
https://topvideosgay.com/

Response headers

Server
nginx/1.14.0 (Ubuntu)
Date
Wed, 10 Apr 2019 15:02:56 GMT
Content-Type
text/html;charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding Accept-Encoding
Status
200 OK
X-XSS-Protection
1; mode=block
X-Content-Type-Options
nosniff
X-Powered-By
Phusion Passenger
Content-Encoding
gzip
31826
ca.clcknads.pro/v2/a/ban/iframe/ Frame 97DD
0
0
Document
General
Full URL
https://ca.clcknads.pro/v2/a/ban/iframe/31826
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

:method
GET
:authority
ca.clcknads.pro
:scheme
https
:path
/v2/a/ban/iframe/31826
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
https://topvideosgay.com/
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
https://topvideosgay.com/

Response headers

status
200
server
nginx
date
Wed, 10 Apr 2019 15:02:56 GMT
content-type
text/html; charset=UTF-8
vary
Accept-Encoding
access-control-allow-origin
*
access-control-allow-credentials
true
access-control-max-age
86400
referrer-policy
unsafe-url
set-cookie
uuid=2eb16889a153d7096bcd1d1c24363470b71801bf5bfb3c52710b369fbf9ca6c9; expires=Fri, 10 Apr 2020 15:02:56 GMT; domain=clcknads.pro; path=/; HttpOnly
content-encoding
gzip
truncated
/
64 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
7715e7e46333a5d53a012eeb67176f26749db09bd37e610875b406140553434f

Request headers

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

Response headers

Content-Type
text/plain
pattern16.png
topvideosgay.com/wp-content/themes/novavideo/images/textures/
6 KB
6 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/textures/pattern16.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
54b5df33ab3e6f028c15690c70b8a5e41395c905a6bc6efb8188d9da88e3c418

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
819856304
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
search-icon-plus.png
topvideosgay.com/wp-content/themes/novavideo/images/
1 KB
2 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/search-icon-plus.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
c322d0f34a1777bf170e553ff78f539eb14b7ce7df1953066cff9920eeaf1524

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347530
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
degrade-menu.png
topvideosgay.com/wp-content/themes/novavideo/images/
174 B
468 B
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/degrade-menu.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
a7e377c18115da29c702d7fcf20ffd8d81bd2557e10623f41a8722bd33e1cbd2

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816746054
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
loading-dark.gif
topvideosgay.com/wp-content/themes/novavideo/images/
10 KB
10 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/loading-dark.gif
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
b768c31faad79ffcd57270cb1e3d5353a718de201e207a724220d43f1b1f8a80

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/dark.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/dark.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
815500616
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/gif
double-line-hd.png
topvideosgay.com/wp-content/themes/novavideo/images/
115 B
409 B
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/double-line-hd.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
1ea1e86b534ee53a2e59fba57b099020ce4e63967dcf7496f23b5554c474cc9b

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
810161090
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
play.png
topvideosgay.com/wp-content/themes/novavideo/images/
2 KB
2 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/play.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
7c7b16ca1be1d602a597b7e6aa0832ca30065eaa8eefcdf6146201cc2b784e13

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/style.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/style.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:55 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
786548424
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
degrade.png
topvideosgay.com/wp-content/themes/novavideo/images/
167 B
461 B
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/degrade.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
9eb11f2602c2f47b7d71355fa0638b7ef7f5800769d138e8ad6bfacfb50885b8

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816156268
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
31826
ca.clcknads.pro/v2/a/ban/iframe/ Frame ED11
0
0
Document
General
Full URL
https://ca.clcknads.pro/v2/a/ban/iframe/31826
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

:method
GET
:authority
ca.clcknads.pro
:scheme
https
:path
/v2/a/ban/iframe/31826
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
https://topvideosgay.com/
accept-encoding
gzip, deflate, br
cookie
uuid=2eb16889a153d7096bcd1d1c24363470b71801bf5bfb3c52710b369fbf9ca6c9
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
https://topvideosgay.com/

Response headers

status
200
server
nginx
date
Wed, 10 Apr 2019 15:02:56 GMT
content-type
text/html; charset=UTF-8
vary
Accept-Encoding
access-control-allow-origin
*
access-control-allow-credentials
true
access-control-max-age
86400
referrer-policy
unsafe-url
set-cookie
uuid=2eb16889a153d7096bcd1d1c24363470b71801bf5bfb3c52710b369fbf9ca6c9; expires=Fri, 10 Apr 2020 15:02:56 GMT; domain=clcknads.pro; path=/; HttpOnly
content-encoding
gzip
31826
ca.clcknads.pro/v2/a/ban/iframe/ Frame 2D28
0
0
Document
General
Full URL
https://ca.clcknads.pro/v2/a/ban/iframe/31826
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

:method
GET
:authority
ca.clcknads.pro
:scheme
https
:path
/v2/a/ban/iframe/31826
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
https://topvideosgay.com/
accept-encoding
gzip, deflate, br
cookie
uuid=2eb16889a153d7096bcd1d1c24363470b71801bf5bfb3c52710b369fbf9ca6c9
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
https://topvideosgay.com/

Response headers

status
200
server
nginx
date
Wed, 10 Apr 2019 15:02:56 GMT
content-type
text/html; charset=UTF-8
vary
Accept-Encoding
access-control-allow-origin
*
access-control-allow-credentials
true
access-control-max-age
86400
referrer-policy
unsafe-url
set-cookie
uuid=2eb16889a153d7096bcd1d1c24363470b71801bf5bfb3c52710b369fbf9ca6c9; expires=Fri, 10 Apr 2020 15:02:56 GMT; domain=clcknads.pro; path=/; HttpOnly
content-encoding
gzip
loader-24.gif
topvideosgay.com/wp-content/themes/novavideo/images/
4 KB
4 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/loader-24.gif
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/wp-includes/js/jquery/jquery.js?ver=1.12.4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
9d7ff12cdf95042cc466393c1181bf650e2245bff42252566d106f8feae335b8

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/jquery.bxslider.css?ver=5.1.1
Cookie
kmr9eE1=update
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/jquery.bxslider.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
815500619
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/gif
px-dark.png
topvideosgay.com/wp-content/themes/novavideo/images/
923 B
1 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/px-dark.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/wp-includes/js/jquery/jquery.js?ver=1.12.4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
1ba2fd86827be40d2353d1ad022d304f9c23271da14e6749a03e6406bd1273d1

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/dark.css?ver=5.1.1
Cookie
kmr9eE1=update
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/dark.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
820347532
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
controls-plus.png
topvideosgay.com/wp-content/themes/novavideo/images/
3 KB
3 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/controls-plus.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/wp-includes/js/jquery/jquery.js?ver=1.12.4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
e710f98477b3cd1b037d10794b3582e2df3b8a1ce64ef44dca5769f41975d23d

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Cookie
kmr9eE1=update
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:56 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
786548431
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
backtotop-plus.png
topvideosgay.com/wp-content/themes/novavideo/images/
2 KB
2 KB
Image
General
Full URL
https://topvideosgay.com/wp-content/themes/novavideo/images/backtotop-plus.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/wp-includes/js/jquery/jquery.js?ver=1.12.4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
192.99.94.134 Montréal, Canada, ASN16276 (OVH, FR),
Reverse DNS
ip134.ip-192-99-94.net
Software
/
Resource Hash
f1046897d151bf45d034f0d8b12bdf3e98d22854ddd24c115a8040aa39a4596e

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate, br
Host
topvideosgay.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.1
Connection
keep-alive
Cache-Control
no-cache
Referer
https://topvideosgay.com/wp-content/themes/novavideo/css/darkdzplus.css?ver=5.1.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
Wed, 10 Apr 2019 15:02:59 GMT
Last-Modified
Wed, 09 Nov 2016 03:27:26 GMT
Age
0
Vary
User-Agent, Accept-Encoding
X-Cache
MISS
X-Varnish
816877201
Transfer-Encoding
chunked
Connection
keep-alive
Accept-Ranges
bytes
Content-Type
image/png
f.png
acrmbjkk6qc5utby.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/
68 B
327 B
Image
General
Full URL
https://acrmbjkk6qc5utby.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/f.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:57 GMT
referrer-policy
unsafe-url
server
nginx
access-control-allow-origin
*
access-control-max-age
86400
content-type
image/png
status
200
access-control-allow-credentials
true
content-length
68
25946
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/vsl/vst/25946?subId=&playerWidth=426&playerHeight=239&pageUri=https%3A%2F%2Ftopvideosgay.com%2F&referer=&wgl=0&abl=0
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
b12af4fd1bad41f192f055bea48770aa1bca0e4035116f4be67ae5e8252f1cfb

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:57 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
status
200
vary
Accept-Encoding
content-type
application/xml; charset=UTF-8
access-control-allow-origin
https://topvideosgay.com
access-control-max-age
86400
access-control-allow-credentials
true
preroll.engine
engine.phn.doublepimp.com/
27 B
369 B
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=aa101eb7-1e9c-45b7-9a18-e4c9e6b484eb&zid=10310&cvs=&time=&stdtime=&abr=&pageurl=https%3A%2F%2Fclickaine.com&subId=&tid=&res=&bw=&bh=&kw=&referrerUrl=&pw={PlayerWidth}&ph={PlayerHeight}
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:57 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
https://topvideosgay.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
144
25946
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/vsl/vst/25946?subId=&playerWidth=426&playerHeight=239&pageUri=https%3A%2F%2Ftopvideosgay.com%2F&referer=&wgl=0&abl=0&resell=1
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
64af496dfecf3a901b9b07fcdea4447c635a9c5db4d616dc98653f81032bb6e3

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:57 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
status
200
vary
Accept-Encoding
content-type
application/xml; charset=UTF-8
access-control-allow-origin
https://topvideosgay.com
access-control-max-age
86400
access-control-allow-credentials
true
34489
ca.clcknads.pro/v2/a/prl/vst/
3 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/prl/vst/34489
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
cdd9d9e25740e79b9b0371fe3f2ae59c7beb558118de8bd8b3ca79ace67c72ca

Request headers

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

Response headers

pragma
no-cache
date
Wed, 10 Apr 2019 15:02:57 GMT
content-encoding
gzip
referrer-policy
unsafe-url
last-modified
Wed, 10 Apr 2019 15:02:57 UTC
server
nginx
status
200
vary
Accept-Encoding
p3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
access-control-allow-origin
https://topvideosgay.com
access-control-max-age
86400
cache-control
private, no-cache, no-store, must-revalidate, max-age=0
access-control-allow-credentials
true
content-type
application/xml; charset=UTF-8
expires
Wed, 10 Apr 2019 15:02:57 UTC
preroll.engine
engine.phn.doublepimp.com/
27 B
184 B
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=53c5af00-3108-4022-a970-db684ec03f8e&zid=10060&pageurl=&subId=58143&pw=0&ph=0
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:57 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
https://topvideosgay.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
144
25946
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/vsl/vst/25946?subId=&playerWidth=426&playerHeight=239&pageUri=https%3A%2F%2Ftopvideosgay.com%2F&referer=&wgl=0&abl=0&resell=1
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
cca96011f3dec7966d008e2590e6dcdb44fa23146e430ff80aa155039060d986

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:58 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
status
200
vary
Accept-Encoding
content-type
application/xml; charset=UTF-8
access-control-allow-origin
https://topvideosgay.com
access-control-max-age
86400
access-control-allow-credentials
true
preroll.engine
engine.phn.doublepimp.com/
27 B
184 B
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=aa101eb7-1e9c-45b7-9a18-e4c9e6b484eb&zid=10310&cvs=&time=&stdtime=&abr=&pageurl=https%3A%2F%2Fclickaine.com&subId=&tid=&res=&bw=&bh=&kw=&referrerUrl=&pw={PlayerWidth}&ph={PlayerHeight}
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:57 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
https://topvideosgay.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
144
25946
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/vsl/vst/25946?subId=&playerWidth=426&playerHeight=239&pageUri=https%3A%2F%2Ftopvideosgay.com%2F&referer=&wgl=0&abl=0&resell=1
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
b2630651bf4255b25a5d36131551ad593c96c84672bdd84fbc21f278aaa8ac34

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:58 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
status
200
vary
Accept-Encoding
content-type
application/xml; charset=UTF-8
access-control-allow-origin
https://topvideosgay.com
access-control-max-age
86400
access-control-allow-credentials
true
preroll.engine
engine.phn.doublepimp.com/
27 B
207 B
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=d0c7d2bd-24e6-4441-a2d6-167a50a6044d&zid=9207&cvs=&time=&stdtime=&abr=&pageurl=&subId=&tid=&res=&bw=&bh=&kw=&referrerUrl=&pw={PlayerWidth}&ph={PlayerHeight}
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:59 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
https://topvideosgay.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
144
25946
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/vsl/vst/25946?subId=&playerWidth=426&playerHeight=239&pageUri=https%3A%2F%2Ftopvideosgay.com%2F&referer=&wgl=0&abl=0&remnant=1
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
f99f0ff74086cfa43bbf975a59a69b5d6aca136ca257b8cfdfcb88030ec98b8c

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:02:58 GMT
content-encoding
gzip
referrer-policy
unsafe-url
server
nginx
status
200
vary
Accept-Encoding
content-type
application/xml; charset=UTF-8
access-control-allow-origin
https://topvideosgay.com
access-control-max-age
86400
access-control-allow-credentials
true
10002088
a.adtng.com/get/
5 KB
6 KB
XHR
General
Full URL
https://a.adtng.com/get/10002088?time=1542901188867&apb=Al5DS0QLCJKCuT2qNJFRpeTJm0ZpCiD0I2kL0Jw6jBCch8D61BQiPiR3cpnmSfkTkpppx5-rKZ2mCETyNyW5_1UrHmmoPcXrZoq-hHonsHpVipemV1rtUePatcyYL8LBNG87hgEIqLD-jnyv7hdW
Requested by
Host: ca.clcknads.pro
URL: https://ca.clcknads.pro/v1/a/25946/js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.166 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
openresty /
Resource Hash
1731a7d4212dce74cbab553cddb60d6eb2b8f6e02265300cc3cff726221a2ace

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Server
openresty
Transfer-Encoding
chunked
Access-Control-Allow-Methods
GET
Content-Type
application/xml
Access-Control-Allow-Origin
https://topvideosgay.com
Cache-control
private
Access-Control-Allow-Credentials
true
Access-Control-Allow-Headers
Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With
800471_video_with_sound.mp4
hw-cdn2.contentabc.com/adtool-premium/creatives/1/117/800059/800471/
32 KB
0
Media
General
Full URL
https://hw-cdn2.contentabc.com/adtool-premium/creatives/1/117/800059/800471/800471_video_with_sound.mp4
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.78 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip078.ssl.hwcdn.net
Software
/
Resource Hash

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 17 May 2018 20:58:25 GMT
Access-Control-Allow-Origin
*
ETag
"1526590705"
X-HW
1554908578.dop002.pa1.t,1554908578.cds016.pa1.shn,1554908578.dop002.pa1.t,1554908578.cds035.pa1.c
Content-Type
video/mp4
Content-Range
bytes 0-4376444/4376445
Cache-Control
max-age=10765613
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
4376445
truncated
/
2 KB
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627

Request headers

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

Response headers

Content-Type
image/png
truncated
/
715 B
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd

Request headers

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

Response headers

Content-Type
image/png
800471_video_with_sound.mp4
hw-cdn2.contentabc.com/adtool-premium/creatives/1/117/800059/800471/
18 KB
18 KB
Media
General
Full URL
https://hw-cdn2.contentabc.com/adtool-premium/creatives/1/117/800059/800471/800471_video_with_sound.mp4
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.78 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip078.ssl.hwcdn.net
Software
/
Resource Hash
7005a7bfa2357b925576b974fe22ef95a894a720c27406d29f30a652f6bf695d

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 17 May 2018 20:58:25 GMT
Access-Control-Allow-Origin
*
ETag
"1526590705"
X-HW
1554908578.dop002.pa1.shc,1554908578.dop002.pa1.t,1554908578.cds035.pa1.c
Content-Type
video/mp4
Content-Range
bytes 4358144-4376444/4376445
Cache-Control
max-age=10765613
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
18301
impression
a.adtng.com/vast/
0
355 B
Image
General
Full URL
https://a.adtng.com/vast/impression?a2cid=eyJwaWQiOiIxMTciLCJzaWQiOiIxMDAwMjA4OCIsIm5pZHMiOiIzMzM3OCwzNTU0NyIsImNyaWQiOiI4MDA0NzEiLCJzdiI6IjMiLCJ0c25hbWUiOiJBRkYiLCJjcmMiOiIyMiIsImNuIjoiUFJFUk9MTF8xOTIwWDEwODBfUENfU0hBVU5fVkFTVF9TVFJBSUdIVCIsIm5pZCI6IjM1NTQ3IiwiZXh0X3B1YiI6IiIsImNycCI6IjQuMDgiLCJ0aWQiOiIyIiwiaXQiOiIxMFwvQXByXC8yMDE5OjE1OjAyOjU4ICswMDAwIiwiY2MiOiIyIiwic25jaWQiOiIzOTkwOCIsImNpZCI6IjI0MjczIiwiZXh0X3VpZCI6IiIsImNwIjoiOTAiLCJzbmNjaWQiOiIyNjMyODIiLCJpaWQiOiI2NmYyMTM2OWEzOWY3ZTBjZWY0YTFlZjc0ZWY1NDM0YiIsImV4dF9paWQiOiIifQ==
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.166 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
openresty /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:59 GMT
Access-Control-Allow-Credentials
true
Server
openresty
Access-Control-Allow-Headers
Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With
Transfer-Encoding
chunked
Access-Control-Allow-Methods
GET
Content-Type
text/html
800471_video_with_sound.mp4
hw-cdn2.contentabc.com/adtool-premium/creatives/1/117/800059/800471/
4 MB
4 MB
Media
General
Full URL
https://hw-cdn2.contentabc.com/adtool-premium/creatives/1/117/800059/800471/800471_video_with_sound.mp4
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.78 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip078.ssl.hwcdn.net
Software
/
Resource Hash
118e3e75ce05b8d5269b78f1e137c2e6603424468f89dc868a7dfaed6d29b70a

Request headers

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

Response headers

Date
Wed, 10 Apr 2019 15:02:58 GMT
Last-Modified
Thu, 17 May 2018 20:58:25 GMT
Access-Control-Allow-Origin
*
ETag
"1526590705"
X-HW
1554908578.dop002.pa1.shc,1554908578.dop002.pa1.t,1554908578.cds035.pa1.c
Content-Type
video/mp4
Content-Range
bytes 32768-4376444/4376445
Cache-Control
max-age=10765613
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
4343677
imp
ca.clcknads.pro/v2/a/vsl/
0
300 B
Image
General
Full URL
https://ca.clcknads.pro/v2/a/vsl/imp?d=Al5D69rrakqFpcdAqJqChWsTANU13IRAcQ7H1A-4TuejdeGDFDRncOTzjESZtCPutNJO_AHD5_O5-jPhsWX8d7oAKz09d14CSnErzXzgDMCH25LKB6c4wfAPHfqNEMLkNfVuG8IB-aObamUo101MT8PeY3ExTxBW0xka2t6fjWjBo3-dkVMpGyHnxKb8yT-S94yKPz1Ub43YhIMVYtqBkRqezb-avxqpf20lFn5e4_X8DpoUIF3Jgq05d40aEBKoZdSOA_SfBIz-qxQbMxHehMQzkZk6tF21N7MGccwjOj4z8qp4_rrGXCgUgdK4u4PO6dM0uUuS5WehGSixOXE8vJ99gkPf4P8Zlo9Lw6GEJnIOoAic_Ka4viNZn4tyS0bD7WQatG3DCsLRP3m9p1zn_pHi-gjBVla9kh19c7Cl1ZtEODbMmdXyVPYYO7KM9CZauiPopDAUPKT00q_n5yzN8I-c2h5YEe7Ndihfr0q1aNKRXnXboBv5GFdRTukfTj9gCVuujLtDYyfhETuJO04SyNwTU9eBVVwGt-yozvZb_vtDun48Y76e7jCqVXNgFaRctWaxeY-i7WPSt9nsAIWkrnVxZaBhdi_SnNzYUhzIXc-iMtAnagAWRzDohrYILSklXIKBZALFRWX7ld20icJLJClCW60eu_diXjr0pX6MJlLkW5xwENbiyqStHyZBgLjAvOZiaNn9whTWyv6Hwm3_OxsZ-L6vFzp6V_-kFStm_PtJ3rnqxMdKN9AQ_9GYcpNrSF-Zm2k4IJO6W7mCS9nSGBdhXJLs259L_IKti-HKFByZ1v7_6WgOfSBuEYXZ1Sz7O4xoU9p_gQi4QKYlIUwj1czpM5-n2-MiVkTfMsPGisZxp70HqhpW1HplmHSEBmY_eopifQ2bOAGz53we5Yhow25KL5CWme6XM0kb9V-HKS6XAyR1uZkARuaLR27GxP8fYIIdmZIbT_Vj6B5LELN58Lku9Uzz24Y3kkwgOrUin8aM0x4oAY3kbEXbTpRBU1kb-ChpjxO2KsLpvpJr7PN9pcsA
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

pragma
no-cache
date
Wed, 10 Apr 2019 15:02:59 GMT
referrer-policy
unsafe-url
last-modified
Wed, 10 Apr 2019 15:02:59 UTC
server
nginx
access-control-allow-origin
*
access-control-max-age
86400
p3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
status
204
cache-control
private, no-cache, no-store, must-revalidate, max-age=0
access-control-allow-credentials
true
expires
Wed, 10 Apr 2019 15:02:59 UTC
events
etahub.com/
0
689 B
Image
General
Full URL
https://etahub.com/events?app_id=10925&eventName=VAST_START&nspot_id=10002088&nspot_node_id=35547&nspot_node_campaign_creative_id=263282&ncampaign_id=24273&ncreative_id=800471
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.26 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET, POST
s.png
acrmbjkk6qc5utby.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/
68 B
234 B
Image
General
Full URL
https://acrmbjkk6qc5utby.pro/v1/pt/NjQ2Zjc0MmU2MzZmNmQ%3D/s.png
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058

Request headers

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

Response headers

date
Wed, 10 Apr 2019 15:03:02 GMT
referrer-policy
unsafe-url
server
nginx
access-control-allow-origin
*
access-control-max-age
86400
content-type
image/png
status
200
access-control-allow-credentials
true
content-length
68
events
etahub.com/
0
467 B
Image
General
Full URL
https://etahub.com/events?app_id=10925&eventName=VAST_FIRST_QUARTILE&nspot_id=10002088&nspot_node_id=35547&nspot_node_campaign_creative_id=263282&ncampaign_id=24273&ncreative_id=800471
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.26 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET, POST
events
etahub.com/
0
689 B
Image
General
Full URL
https://etahub.com/events?app_id=10925&eventName=VAST_MID_POINT&nspot_id=10002088&nspot_node_id=35547&nspot_node_campaign_creative_id=263282&ncampaign_id=24273&ncreative_id=800471
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.26 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET, POST
events
etahub.com/
0
689 B
Image
General
Full URL
https://etahub.com/events?app_id=10925&eventName=VAST_THIRD_QUARTILE&nspot_id=10002088&nspot_node_id=35547&nspot_node_campaign_creative_id=263282&ncampaign_id=24273&ncreative_id=800471
Requested by
Host: topvideosgay.com
URL: https://topvideosgay.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.26 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

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

Response headers

Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET, POST

Failed requests

These URLs were requested, but there was no response received. You will also see them in the list above.

Domain
fonts.googleapis.com
URL
http://fonts.googleapis.com/css?family=Abel
Domain
c1.popads.net
URL
https://c1.popads.net/pop.js

Verdicts & Comments Add Verdict or Comment

81 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 object| _wpemojiSettings undefined| $ function| jQuery object| objectL10n function| gMakeSheet function| gAddStyleToSheet object| sheet object| xsSheet object| smSheet object| mdSheet object| lgSheet object| helper object| YOPPollReCaptchaElements function| YOPPollOnLoadRecaptcha function| Color function| Chart function| Fingerprint2 object| _pop string| ad_idzone boolean| ad_popup_fallback boolean| ad_popup_force boolean| ad_new_tab number| ad_frequency_period number| ad_frequency_count number| ad_trigger_method string| ads_priv string| c_name object| expires object| date string| browser function| V4ss function| E9nn string| value function| isIE function| isSafari function| isChrome function| isFirefox function| getBrowser function| checkIncognito function| isIEIncognito function| isSafariIncognito function| isChromeIncognito function| isFirefoxIncognito string| browser_key string| ua string| uid string| wid string| popns object| IOarzRhPlP function| PopShow3 string| cookieString number| start function| i333 function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop function| selectnav object| ajax_var object| wpcf7 object| wp string| mrvyCFYNStis string| FNYrUrwNIv number| FhlgRVjhEa number| TnMmfMxTVQ number| mfykNrQHkw number| XHcqrqpVYV function| acmIGTtHol object| kIYHSFTTFq number| c2 number| c1 object| Oatf5aNXw5J0 function| GTtSZlOjss function| createGrid function| YOPPollSendBasicVote function| YOPPollBasicUpdateToken object| jQuery11240600520626678221 object| twemoji

0 Cookies

92 Console Messages

Source Level URL
Text
console-api log URL: https://topvideosgay.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1(Line 2)
Message:
JQMIGRATE: Migrate is installed, version 1.4.1
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
Popunder Script @ popunderjs.com
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
Author:
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
Version:
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
Release:
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
111
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
[License]
console-api log URL: https://cdn.popcash.net/pop.js(Line 5)
Message:
[License]
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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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.

a.adtng.com
acrmbjkk6qc5utby.pro
ad.a-ads.com
ads.exosrv.com
c1.popads.net
ca.clcknads.pro
cdn.popcash.net
dcba.popcash.net
engine.phn.doublepimp.com
etahub.com
fonts.googleapis.com
hw-cdn2.contentabc.com
muqson0kgr.com
topvideosgay.com
c1.popads.net
fonts.googleapis.com
192.99.94.134
198.134.112.241
205.185.208.78
205.185.216.42
216.18.168.166
216.18.168.26
34.196.182.1
69.89.69.121
85.10.200.158
88.208.59.71
94.31.29.128
0126f0e4c87246beacfdeda7a696737b817914e73de6355aabf705727e23916c
0130b1486779cb9ce96db5a7f7ff2d7e137aa2ae53a83e6097ca0a2be1f62cc2
054637cd675e1c3e9172263e3a49d64a4ee7c4ec3394705d311b64871d3c4e03
05bb935526415a3e83cb0d444d3ed5d857b646c713b69de95f7d2a02fc4aacf2
0ee6d2be113c2a7a936eb87c5d8fef202a35ca96820333c25b51e44faea73087
0f615301fb59730bd46bd577607e838893cbead32623e60fba1666f1864afa80
0f89cbd3cbac13208d956b80c8c4acf404e81d4e41492cb72504e5b1fdfe648f
1082b11ac754f4991c0839cbe4e101fed6120766ba7c71c797e96673ecd15409
118e3e75ce05b8d5269b78f1e137c2e6603424468f89dc868a7dfaed6d29b70a
131aaddff348828cd45b111cd441c37c177d91a3288370db53c7743ecb7e103a
1731a7d4212dce74cbab553cddb60d6eb2b8f6e02265300cc3cff726221a2ace
19b22f663cbe58f420dd48ffe613fc7c1f06ca3ede79e242d5c59b3bab970705
1ba2fd86827be40d2353d1ad022d304f9c23271da14e6749a03e6406bd1273d1
1ea1e86b534ee53a2e59fba57b099020ce4e63967dcf7496f23b5554c474cc9b
212a2be8ddb6ea35e2b2470ed2e96e47e4ba6a17d29fe9e943a83a4e5f99e0e5
213611cfc81504fdeb5cb2b81c9922b97b9cb4606ee27326c6b0e0a97f9ec26a
2152557cac69e2bd7d6debef5037a9f554f9209cc305b8141b3329acb10c42b7
23cef62b4d22358b4be7fe1c244403b429eb827b0441ee9518a1ceabc6664e27
25501d815c791dd76d7e9aeb04cabeaf15fd1f74e7604d72c0c7e8c757c1c1f7
280b7d92b32d2596f1108d1f7c220ffd046c59806a41d9c3f52fc0f053e83e2b
282696b72ea737361007be0c2b30dd3eb0a8e3bfddc0090b94dae201b7f51d5f
2ace893ec4357c03198547aa436496bff594dd8a946cbc21d7c36c21775dd536
2ad6ae45b70ef86bba1ab7cc75a4eaca3804110c1aed69b4fa8127e3bbf99f22
2c2b9503bcd8c0ab9031c8b887b05fb938aedd5c6cd252a24fb95310480ce6e4
2d93239d33004fce822d2d30f6aab971a135b26ae953ddeaace940c756529f3f
2f721b10487ccdc22afe1a9f7a1ea514d89d7d97e5a38b170ecb6f45e5ba2be9
3167bba5e8a9c4cb319c8a5612c69e2108b3c2741d17f19cd77fd9439147e370
33f1db32158c98dcc28ed35514335854cb65530e801fed6f83ca917128e74edb
34821c06cbdaebd236702b7d624dab7aeedc21c76a83ff404f980bf38e7df10d
34f55e972d9fcdb266a90f1053cbc397e62b987b85b4ea5076fab1d8abbde22c
357392c9f303a103c649f5d26066c540a4ff268a036b220214daf9d5b159a070
375bcb14eab8cd5dcb820ccdbf1d92840e67c4c6ffe9d714973bed4db6d11cac
3ad2fcb328295f1199d593adaba909f3eea790f695554ac3c1da7aa009fc0e0d
3bcbe681d1f2ba745e729b786e9185c2599c267e97971ff4a34c475bf48e7dcf
3c4e9609608c25bcfdfdb378d5e263b2d884b38b47e13cd3616354f85fe57dd8
3d1562988fe4a5176508b3bf432d30020b2d1c6fe5d687786f921d44dd3115b6
3d7fa73a011ea4369fef7212339e0f269d2f728ce90c362017ae6d44ebe6d2b1
3dc275e91f490d02f78ebf9e0f15f6bc969d5637ae08eeaf3b16f73ef8d446ac
3eeaef0f98b062323cfb70a09834990f8d9d27578baed4862d4db50c7d8431d9
42777cbfda9ecfd29c88befea3e9629d2316e826fae4823b000392bdfe2e0b40
445ba863e1f7e1c1d36aeb2848d66254038683faddb102b9f2da8999f18b394e
46271c7c9af2bceb2efecdebc8a1dadaf731676c3d62d6ac40d3cd161f21c933
4771f81eecf787f9ba3bbdff48322227a5bb1e5a8c04e5202cbb4619daebe66b
48eb8b500ae6a38617b5738d2b3faec481922a7782246e31d2755c034a45cd5d
4ae93492d1b69e7ac955ba05d9763b08ee68981baf5c03344b7df6eccd54adf7
4cd45c74430b4bf07b807c36fb959824b13e29195485b59a5adec309e2e6d0b7
505814e2238da1d0f592258ac7b91a95496aa6dec75d869597c83c59d16a19da
54b5df33ab3e6f028c15690c70b8a5e41395c905a6bc6efb8188d9da88e3c418
54ed759c1d15737ed7e7e5f21efb7dc8fef9477a67567ff5e04a178a84c4eeae
572cbc2ec97e892812e7bda49d2a3e26ed8b6c5f6fecbc4eec349ad6d48a4ff1
5895fb0724b2e0d5a107226296f0ba75392db0e6be4b3604cfd89e97bc2f28cb
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5bad39e86c1ae96a079963b880d591cf5cb639042df35963153e9d13bc35eb16
63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058
64af496dfecf3a901b9b07fcdea4447c635a9c5db4d616dc98653f81032bb6e3
65c2030e856e54c3a4fd65bcc14a77fd239a8c27b3a8744097eefad9e07ad674
676406406e1ffc6d4ca641b63ae4cec091ddb72cf2abc6121967a59a160522b0
69e9915d572e9fc37a09ff76ddbf16734d53b5b6f0c06f505cad6fb129c5b41d
6bcd1bf9eb557ca4911a55e60bb341c880b89d12f0cbccbbfebbcd1884bbabc8
6c8cea0b739c1de00ba05780d5278c7ca6aaf65ff7eefd8a2de362b38f4814e7
6dba0361270c03225889148e46c8c56bda2d39e9c236c576e0da068d1142c699
6e1f112b8fed2812ee2a58aca72310a638505ae402cb196a69aed039d92e82ef
6e42decbe68e22827eb2717563487d27e6d3402e257f99e60022ed43ad107136
6f4689459ef10358f35d5849a47e2f623375803c7764719f5a205f4b3eaa0315
7005a7bfa2357b925576b974fe22ef95a894a720c27406d29f30a652f6bf695d
710aae4d5532319f1781447a49b6fb6b81923327e3411dd371aa95e1b2918cc6
71aee0db165e7e2804e4b4aa9839652efae3198f346e300e3bc8549f6f80ddba
71e424133e5716034dc23a61a04c8be2e0a2b0e27152600cc4109b4941755df4
72e3175ed919fa973ca399ac1fec15adbf44090ac34e713696189264a24959f9
75cf0ecd6f80117c1c62d3bc398adf1a4f8d94d0b4a8f2e0315013b86fca8009
7715e7e46333a5d53a012eeb67176f26749db09bd37e610875b406140553434f
79c17381aebaff63b590efe32212d74ec5dfcadca2d456aaaee6037e4ba836ac
7a00578d24062de4a0a0fc43e1241148e5c7e6a1ffa0d0266c037565b628cbfe
7c7b16ca1be1d602a597b7e6aa0832ca30065eaa8eefcdf6146201cc2b784e13
7daf41e4a4c1a3488d10933f7691f7a9c8aea7c51903d9c907a709e34f0c5d63
7e9c06f22ce2addc779889638a499c031deeceee359f7cb2fb7fb7c35e52b430
7f15eb340b57980cd860fa349814e89218c58152a7266a912c0adc48ad90dc45
80eef745dab7ff3d20b69a2c6ca427872f5bbeab37531f5a78525e6bbd4f437d
851f740a54a8f5ded32cb35dee5225f57eb4d4d7049b188a067d165de2ed661d
855d8918f08eefd857e458caaea4c588b31079c742b83528438fd8560db0b37e
867d7f4c4d017f078502fc51181cec8d09b7b468c630582c6ff01935049f06d6
887c9a2469a90168d33808cdcb043b8d1c68d7f69ffd5a103094800a55a2297d
89ea27819ba2c83b1b29e997ac834e3a805da71c8cfc984f623998baa23e1ec4
8a8e2611bd39779deaee7023630570019cc1e3f3687f494e34292572cb202067
8fed33eb2d4752571d1c699247d6f8b88615efbec229c409c51d1e27ff424f7d
914c900bce0c66b436c171dcc245b7b9f479a9ff21cedc46ce8d97f2e6a80959
92beb215065d0a1954c6565cdb5d35d9401dc6cb9572b2870eaeb0b93582d348
92cc37ab95008b66bf2cfb65f472a2923ed2d182e0026cb23418b0ae049cf081
95e6e7381e30ab148f6fb904cb994d99955ff6d5bff803be4d33c5c895f632a9
9682359ed37014b2c487ffbdee6006850b76f0f7d22929b5607d1067c6b04028
970b67749fc0ee1e097dc404f42fbb7b125f9f75441280b1dff8893443deffb6
976ccd072498eca1757bec1c703c45cfc54d6da41c26b3d5af6088ff3e0aeb4c
9b9d0d5577c99000cb1c34927e25077f2006597b3a9fc5acd8005cc065f7a953
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
9d7ff12cdf95042cc466393c1181bf650e2245bff42252566d106f8feae335b8
9eb11f2602c2f47b7d71355fa0638b7ef7f5800769d138e8ad6bfacfb50885b8
9f109e7d0eca28363efb08e8d136d30816d1ac9eff1dc9c231a8a674f553999a
9f65da64de7069c5d7096cfbe41dc7117f512b62cf4079cd8df5b07f47d00ca6
a00b8d986153332e77f25d07d753f46ea5b1743d4e6836ddbe66f9848414530e
a2351a105d3b5ca84562f46532520065307105ad268b34d17fea0d215a9274d5
a3107222899bb6470b97ee14d6fde0b16c6864e4261e97195b154afb0a4e7d8f
a39d684b5de426441e5f9deca9fe859561feb33ba175a87168de7363921775d7
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d
a72261a5191d1485620242b7d3b735501757aef23dedc6d27c84919af838e756
a7e377c18115da29c702d7fcf20ffd8d81bd2557e10623f41a8722bd33e1cbd2
ad52b096db52c299fd008533308fdcc872346bbdf688f3ed602f80073845d0a2
b0fd25270f3b75a76f235de73c8d7ceb7b446828c960bfce63baac79737609a3
b12af4fd1bad41f192f055bea48770aa1bca0e4035116f4be67ae5e8252f1cfb
b252c036470fc8f6992af210d3f7a5a8a2b37c501bf94dfa056c36df496b2447
b2630651bf4255b25a5d36131551ad593c96c84672bdd84fbc21f278aaa8ac34
b41a173cfa12a8f1d8aca3954f2bfedcd1484787ea2d7b2e1d3b3309e36f7c5f
b4d5cef51c33c3ced0cfedc6302409a038bfd6b44a58fe9841834c78108c3477
b7369b7242463eb319132f76eeec8200a3d115c2f0c93457542641775fe6364b
b738edbb43db6a4cddd2a83118168f438f6280a3408e57b720a43901c4dd71ad
b768c31faad79ffcd57270cb1e3d5353a718de201e207a724220d43f1b1f8a80
b7e17926b30342edecee8b3a93029ac51462e2b479277d8e077ba57173eb1900
b80e43d2433c3c6f7a79df7d5bba8cddc02e0652c56b858b73e625a43535e2a8
b9a16d49bfd6b55a0763875fa531f6edfec7449b39dc7a736e0e5e7cb659e24e
bb61e2747d25fe8bf15e2701608d7c4ecacf76b033bca007ecb8e278baca7edb
c16aff4532e217255b79b907235e18ae8f787ec2ac2cd2f94fbedcda2e6135ab
c19abe7fcc56ac4c2337c854c2ac3b0542733d11516121c1c765b2af9341dd93
c2f0244e2a3c2ad621253054beffe8ef38c4efc9b645bc664239656a935586f7
c322d0f34a1777bf170e553ff78f539eb14b7ce7df1953066cff9920eeaf1524
c533b791a8eef65604f15d20433506e1614c693eeba9df749e8a7677e43b466c
c5430150cbd5e229308632000d2f4a0968fc5f7dab3de82d4f14fdbfdd148a3c
c85e926d692051017ed7ebdd414ae99aab6dfd06f001a06fc0962be53467f3c3
cca96011f3dec7966d008e2590e6dcdb44fa23146e430ff80aa155039060d986
cdd9d9e25740e79b9b0371fe3f2ae59c7beb558118de8bd8b3ca79ace67c72ca
d21ceb2df9679dce1089bbe7f76eede74bcd680af29fc84d3b014be9a13b0e88
d3dcbf6928b470a865c5e33a3ac87be8f32f9fd182acab4880dcc83b6ae0eeb1
d8d192d7e5f316b1b4c0291c43db452d8c8d465abfeb14e42a81bd5e673d9172
daed9cc8f9e8fe526fbcd91aa1e8e128451866937240b35a048b9a064d6189dd
dbc55294f8901bb30d47741945bb9f80e9b88e5e2fe3213f886ede39eecd16fb
dd9b1a1fbf2052d4562863e29fe2c331113141010ead0f24da9b2901fb0fecd7
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e4b167008f5c65e93717d4074d8e39cc8a2eafc5581fd25d24ac9fbe359fc38e
e559e02469343ffc7c1d8c022c76913ea64122224cd8c0974985a6c121cfc9fe
e6c4d569459883e9a075ca0fb9a7266b1c6baa94bfb452c55747cf06d3dba010
e710f98477b3cd1b037d10794b3582e2df3b8a1ce64ef44dca5769f41975d23d
e9cd4737511779045cc550c0a92d443d09edf4c7a5bfda0add6f4db5bd83de30
ec971fe51590c502508f8fe300e06d0971a9e7e0edac7a36d45beb6e9536d55c
ed8e345d361e7df99c3053926c891d8a667804c978b563cbc00a5c16167f8701
ee0fe9d919baaca19944e0a04e6608cf22fba0e676b5c3bd40f8e357c06b85d3
f0404a7de6407508f6d9e72e5765dfa446f53c0b3eac917a335b2c34ba9d54ca
f1046897d151bf45d034f0d8b12bdf3e98d22854ddd24c115a8040aa39a4596e
f18eb8145ebfb6b75cceac4bb183e8388c941ea03178ccf00056d9854e8270fb
f5abc18992b03251e36568375a5c796dacc3f66f0085c7e07a03e348bac70ac4
f686ce17ea85497c51b2f137878eac4a3da051e0c2c193d52d0108fd6b641e08
f75960e4cdb138c4ed736a19e80bc51731f8fd76baf8f01864e76ac588e3b971
f7c0e7efda7db220ae4ff7c67ab68fadfe029ea9edc1ff52bbcc12a0ef0f2c21
f99f0ff74086cfa43bbf975a59a69b5d6aca136ca257b8cfdfcb88030ec98b8c
fa055f2f7c5b735dbbb71954f434aed79925bc00ff2ffbc3ecfc4a790689a723
fe42ad0576f09b8070146e710f436daa22f2c4bafe8d39c451465787b6f78c37
ff22241a762849137f0dbe39997ec50181697864093fa7258369f310f8cbb988
ff2370c7574369ed8f00376c44b99dc6d28d1ed259d2f78accdef53dde791ee7